Ví dụ cấu hình Spring AOP AspectJ Xml

Spring cho phép bạn xác định các khía cạnh, lời khuyên và điểm nhấn trong tệp xml.

Trong trang trước, chúng ta đã thấy các ví dụ trên sử dụng các chú thích. Bây giờ chúng ta sẽ thấy các ví dụ tương tự bởi tệp cấu hình xml.

lap-trinh-java-Spring
Spring AOP AspectJ Xml Configuration Example

Hãy xem các yếu tố xml được sử dụng để xác định lời khuyên.

  1. aop: before Nó được áp dụng trước khi gọi phương thức logic nghiệp vụ thực tế.
  2. aop: after Nó được áp dụng sau khi gọi phương thức logic nghiệp vụ thực tế.
  3. aop: after-return nó được áp dụng sau khi gọi phương thức logic nghiệp vụ thực tế. Nó có thể được sử dụng để chặn giá trị trả lại trong lời khuyên.
  4. aop: xung quanh Nó được áp dụng trước và sau khi gọi phương thức logic nghiệp vụ thực tế.
  5. aop: after-throw Nó được áp dụng nếu phương thức logic nghiệp vụ thực tế ném ngoại lệ.

1) aop: trước Ví dụ

AspectJ Before Advice được áp dụng trước phương pháp logic kinh doanh thực tế. Bạn có thể thực hiện bất kỳ hoạt động nào ở đây như chuyển đổi, xác thực, v.v.

Tạo một lớp có chứa logic kinh doanh thực tế.Tập tin: Operation.java

package com.javatpoint;  
public  class Operation{  
    public void msg(){System.out.println("msg method invoked");}  
    public int m(){System.out.println("m method invoked");return 2;}  
    public int k(){System.out.println("k method invoked");return 3;}  
}  

Bây giờ, tạo lớp khía cạnh có chứa trước lời khuyên. 

Tệp: TrackOperation.java

package com.javatpoint;  
import org.aspectj.lang.JoinPoint;  
public class TrackOperation{  
    public void myadvice(JoinPoint jp)//it is advice  
    {  
        System.out.println("additional concern");  
        //System.out.println("Method Signature: "  + jp.getSignature());  
    }  
}  

Bây giờ hãy tạo tệp applicationContext.xml xác định các bean.

Tệp: applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:aop="http://www.springframework.org/schema/aop"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
    http://www.springframework.org/schema/aop   
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">  
  
<aop:aspectj-autoproxy />  
  
<bean id="opBean" class="com.javatpoint.Operation">   </bean>  
<bean id="trackAspect" class="com.javatpoint.TrackOperation"></bean>  
          
<aop:config>  
  <aop:aspect id="myaspect" ref="trackAspect" >  
     <!-- @Before -->  
     <aop:pointcut id="pointCutBefore"   expression="execution(* com.javatpoint.Operation.*(..))" />  
     <aop:before method="myadvice" pointcut-ref="pointCutBefore" />  
  </aop:aspect>  
</aop:config>  
      
</beans>  

Bây giờ, hãy gọi phương thức thực tế.

Tập tin: Test.java

package com.javatpoint;  
  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
public class Test{  
    public static void main(String[] args){  
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
        Operation e = (Operation) context.getBean("opBean");  
        System.out.println("calling msg...");  
        e.msg();  
        System.out.println("calling m...");  
        e.m();  
        System.out.println("calling k...");  
        e.k();  
    }  
}  

Output

calling msg...  
additional concern  
msg() method invoked  
calling m...  
additional concern  
m() method invoked  
calling k...  
additional concern  
k() method invoked  

Như bạn có thể thấy, mối quan tâm bổ sung được in trước khi phương thức dir (), m () và k () được gọi.

2) aop: sau ví dụ

AspectJ sau khi tư vấn được áp dụng sau khi gọi các phương thức logic kinh doanh thực tế. Nó có thể được sử dụng để duy trì nhật ký, bảo mật, thông báo, v.v …

Ở đây, chúng tôi giả định rằng các tệp Operation.java, TrackOperation.java và Test.java giống như được đưa ra trong aop: trước ví dụ. 

Bây giờ tạo tệp applicationContext.xml xác định các bean. 

Tệp: applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:aop="http://www.springframework.org/schema/aop"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
    http://www.springframework.org/schema/aop   
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">  
  
<aop:aspectj-autoproxy />  
  
<bean id="opBean" class="com.javatpoint.Operation">   </bean>  
<bean id="trackAspect" class="com.javatpoint.TrackOperation"></bean>  
          
<aop:config>  
  <aop:aspect id="myaspect" ref="trackAspect" >  
     <!-- @After -->  
     <aop:pointcut id="pointCutAfter"    expression="execution(* com.javatpoint.Operation.*(..))" />  
     <aop:after method="myadvice" pointcut-ref="pointCutAfter" />  
  </aop:aspect>  
</aop:config>  
      
</beans>  

Output

calling msg...  
msg() method invoked  
additional concern  
calling m...  
m() method invoked  
additional concern  
calling k...  
k() method invoked  
additional concern  

Bạn có thể thấy rằng mối quan tâm bổ sung được in sau khi gọi các phương thức dir (), m () và k ().

Bài viết gần đây

Tìm hiểu chi tiết bên trong JVM

JVM (Java Virtual Machine) là một máy ảo. Nó cung cấp môi trường runtime, nơi mà mã Java bytecode sẽ được thực thi.

Sự Khác nhau giữa JDK, JRE và JVM

Trước khi thực sự đặt tay gõ các dòng code Java, cài đặt Java thì chúng ta phải hiểu sự khác nhau giữa JDK, JRE và JVM.

Hướng dẫn Cài đặt đường dẫn PATH trong Java

Nếu bạn tạo dự án Java bên ngoài thư mục JDK / bin, thì cần phải thiết lập đường dẫn của JDK. Đây là 2 cách cài đặt đường dẫn path trong Java.

Cách hoạt động của Chương trình Java: Hello Java

Tìm hiểu những gì xảy ra trong khi biên dịch và chạy chương trình java. Hơn nữa, chúng ta sẽ làm rõ một số câu hỏi ở chương trình Hello Java của chúng ta.

Viết Chương trình Java đầu tiên: Hello Java

Trong bài hướng dẫn này, chúng ta sẽ học cách viết chương trình đơn giản đầu tiên với ngôn ngữ lập trình Java. Qua bài này bạn sẽ biết cách viết Java, Compile và chạy một chương trình Java bất kỳ

So sánh JAVA vs C++

Hôm nay trong bài viết này mình sẽ so sánh Java vs C++. Còn nếu bạn muốn đọc thêm về so sánh Java vs PHP hay Java với C# thì xem thêm tại đây:

Leave a reply

Please enter your comment!
Please enter your name here