Spring 中基于 AOP 的 XML架构
2021-02-02 04:14
标签:get ret ica HERE when raise 依赖 tutorials 五个 为了使用 aop 命名空间标签,你需要导入 spring-aop j架构,如下所述: 确保项目中有如下四个库文件: aspectjrt.jar aspectjweaver.jar aspectj.jar aopalliance.jar 一个 aspect 是使用 这里,“aBean” 将被配置和依赖注入. 使用元素 一个切入点有助于确定使用不同建议执行的感兴趣的连接点(即方法)。在处理基于配置的 XML 架构时,切入点将会按照如下所示定义: 下面的示例定义了一个名为 “businessService” 的切入点,该切入点将与 com.tutorialspoint 包下的 Student 类中的 getName() 方法相匹配: 你可以使用 元素在一个 中声明五个建议中的任何一个,如下所示: 新建Spring项目 在项目中添加 Spring AOP 指定的库文件 aspectjrt.jar,aspectjweaver.jar 和 aspectj.jar。 创建 Java 类 Logging, Student 和 MainApp 这里是 Logging.java 文件的内容。这实际上是 aspect 模块的一个示例,它定义了在各个点调用的方法。 下面是 Student.java 文件的内容: 下面是 MainApp.java 文件的内容: 下面是配置文件 Beans.xml: 运行一下应用程序 注意:一定要保证项目下有库文件aspectjrt.jar和aspectjweaver.jar,否则会报错。 每天学习一点点,每天进步一点点。 Spring 中基于 AOP 的 XML架构 标签:get ret ica HERE when raise 依赖 tutorials 五个 原文地址:https://www.cnblogs.com/youcoding/p/12811388.htmlSpring 中基于 AOP 的 XML架构
声明一个 aspect
元素声明的,支持的 bean 是使用 ref 属性引用的,如下所示:
...
声明一个切入点
声明一个切入点.
...
...
声明建议
...
基于 AOP 的 XML 架构的示例
package hello;
//import org.springframework.aop.aspectj.AspectJAfterThrowingAdvice;
public class Logging {
/**
* This is the method which I would like to execute
* before a selected method execution.
*/
public void beforeAdvice(){
System.out.println("Going to setup student profile.");
}
/**
* This is the method which I would like to execute
* after a selected method execution.
*/
public void afterAdvice(){
System.out.println("Student profile has been setup");
}
/**
* This is the method which I would like to execute
* when any method returns.
*/
public void afterReturningAdvice(Object retVal){
System.out.println("Returning:"+retVal.toString());
}
/**
* This is the method which I would like to execute
* if there is an exception raised.
*/
public void AfterThrowingAdvice(IllegalArgumentException ex){
System.out.println("there has been an exception:"+ex.toString());
}
}
package hello;
//import org.springframework.beans.factory.annotation.Autowired;
public class Student {
private int age;
private String name;
public void setAge(int age){
this.age = age;
}
public int getAge(){
System.out.println("age:"+age);
return age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
System.out.println("name:"+name);
return name;
}
public void printThrowException(){
System.out.println("Exception raised");
throw new IllegalArgumentException();
}
}
package hello;
//import org.springframework.context.support.AbstractApplicationContext;
//import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//import org.springframework.context.annotation.*;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("Beans.xml");
Student student = (Student) context.getBean("student");
student.getName();
student.getAge();
student.printThrowException();
}
}
Going to setup student profile.
name:番茄
Student profile has been setup
Returning:番茄
Going to setup student profile.
age:10
Student profile has been setup
Returning:10
Going to setup student profile.
Exception raised
Student profile has been setup