Thực hiện AOP bằng AutoFac trong .NET Core
Thêm thư viện cần thiết
Sử dụng Nuget để cài đặt gói Autofac.Extras.DynamicProxy.
Xây dựng lớp ghi nhận hành vi
/// <summary>
/// Lớp xử lý giao diện (thực hiện Castle.DynamicProxy.IInterceptor)
/// </summary>
public class GhiNhanKetQua : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLin ...
Đăng vào ngày 29 tháng 6 lúc 06:52
Phân tích phương thức finishBeanFactoryInitialization trong Spring
Phiên bản mã nguồn Spring được phân tích: 5.0.5
Tổng quan
Phương thức này chịu trách nhiệm khởi tạo tất cả các bean singleton không lazy-load còn lại. Các bean nội bộ, bean triển khai BeanFactoryPostProcessor, hoặc bean triển khai BeanPostProcessor sẽ được xử lý riêng. Toàn bộ các bean singleton không lazy-load khác đều được khởi tạo tại đây, ...
Đăng vào ngày 27 tháng 6 lúc 23:23
Áp dụng lập trình hướng khía cạnh (AOP) trong Unity
1. Giới thiệu về AOP
Lập trình Hướng Khía Cạnh (AOP - Aspect-Oriented Programming) là kỹ thuật cho phép thêm chức năng vào chương trình mà không cần thay đổi mã nguồn gốc. Nó hoạt động bằng cách sử dụng biên dịch trước hoặc đại lý động thời gian chạy. AOP bổ sung cho phương pháp OOP truyền thống, nơi OOP tập trung vào việc phân chia các tính n ...
Đăng vào ngày 20 tháng 6 lúc 22:25
Giải Thích Giao Diện Mở Rộng BeanPostProcessor trong Spring
Trong Spring, khái niệm quan trọng nhất là IOC và AOP. AOP giúp mở rộng chức năng của mã nguồn bằng cách chèn thêm các đoạn mã vào trước hoặc sau khi thực thi các phương thức chính.
Khi cần mở rộng hoặc sửa đổi chức năng của các bean trong quá trình khởi tạo, Spring sử dụng khái niệm BeanPostProcessor. BeanPostProcessor là một giao diện cho phé ...
Đăng vào ngày 16 tháng 6 lúc 05:25
Java và SpringBoot: Hướng dẫn chi tiết và ví dụ thực tế
Giới thiệu
Trong bài viết này, chúng ta sẽ khám phá các khái niệm cơ bản của Java và SpringBoot thông qua các ví dụ cụ thể. Chúng tôi sẽ trình bày cách triển khai một số tính năng quan trọng như xử lý lỗi, quản lý session và cấu hình môi trường.
Cấu trúc DispatcherServlet trong Spring
Khi người dùng nhập URL vào trình duyệt, yêu cầu sẽ được ...
Đăng vào ngày 15 tháng 6 lúc 01:10
Cơ Chế Proxy Hóa Bean Trước Khi Khởi Tạo Trong Spring Framework
Trong vòng đời quản lý Bean của Spring, giai đoạn khởi tạo (instantiation) là bước then chốt để tạo ra đối tượng thực tế. Tuy nhiên, framework cũng cung cấp cơ chế để can thiệp vào quá trình này thông qua giao diện InstantiationAwareBeanPostProcessor. Đặc biệt, phương thức postProcessBeforeInstantiation cho phép trả về một đối tượng proxy thay ...
Đăng vào ngày 29 tháng 5 lúc 10:16
Spring Framework Cơ Bản: IOC, AOP và Quản Lý Giao Dịch
Spring Framework là một nền tảng mã nguồn mở, nhẹ và linh hoạt, cung cấp giải pháp toàn diện cho việc phát triển ứng dụng Java dựa trên kiến trúc hướng dịch vụ (SOA) và mô hình phân tầng. Dưới đây là tổng quan kỹ thuật về các thành phần cốt lõi và cách thức triển khai trong thực tế.
1. Kiến trúc tổng quan
Các lớp nền chính của Spring bao gồm:
...
Đăng vào ngày 24 tháng 5 lúc 22:27
Hướng dẫn Tích hợp AOP với Unity Container trong .NET
Tại sao cần sử dụng AOP
Nhu cầu phát triển phần mềm thường xuyên biến đổi, đòi hỏi việc bổ sung các chức năng như ghi log, xử lý ngoại lệ, kiểm soát quyền hạn, cơ chế lưu đệm hoặc quản lý giao dịch vào nhiều phương thức khác nhau. Trong mô hình lập trình hướng đối tượng (OOP) thuần túy, điều này thường buộc chúng ta phải sửa đổi trực tiếp mã ng ...
Đăng vào ngày 22 tháng 5 lúc 10:43
Sử dụng các mẫu thiết kế để tối ưu hiệu năng
Mẫu thiết kế là cách tổng hợp lại các kỹ thuật phát triển phần mềm phổ biến, giúp các lập trình viên có thể trao đổi ý tưởng một cách chuyên nghiệp và nhanh chóng hơn. Ví dụ, khi chúng ta đề cập đến việc sử dụng mẫu Decorator trong mô-đun I/O, bạn có thể dễ dàng hình dung được cách tổ chức mã nguồn của mô-đun này.
Thực tế là hầu hết các mẫu thi ...
Đăng vào ngày 18 tháng 5 lúc 06:05
Triển khai Phòng trừ Gửi lại, Hạn tốc và Tính đẳng cấp trong Spring Boot bằng AOP
Tổng quan
Trong các ứng dụng thực tế, chúng ta thường cần sử dụng các kỹ thuật hạn tốc, phòng chống gửi lại và đảm bảo tính đẳng cấp, đặc biệt ở phía server backend.
Mã nguồn
Annotation
import java.lang.annotation.*;
/**
* Annotation phòng chống gửi lại
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Anti ...
Đăng vào ngày 16 tháng 5 lúc 12:11