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

Java Lambda: Hướng dẫn cho người mới bắt đầu

Bài viết này giải thích các biểu thức Java Lambda trong Java 8. Biểu thức Lambda Java

Ví dụ về Tải xuống tệp từ máy chủ bằng cách sử dụng JSP

Trong ví dụ này, chúng tôi sẽ tải xuống tệp jsp. Nhưng bạn có thể tải xuống bất kỳ tập tin. 

Hướng dẫn sử dụng Spring JdbcTemplate

Spring JdbcTemplate là một cơ chế mạnh mẽ để kết nối với cơ sở dữ liệu và thực hiện các truy vấn SQL. Nó sử...

Hướng dẫn chủ đề Java

Một Instance of Thread là một đối tượng giống như bất kỳ đối tượng nào khác trong Java và nó chứa các biến và...

Tải tập tin lên máy chủ bằng cách sử dụng JSP

Có nhiều cách để tải tệp lên máy chủ. Một trong những cách là bởi lớp MultipartRequest. Để sử dụng lớp này,...

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...

Leave a reply

Please enter your comment!
Please enter your name here