版权声明: https://blog.csdn.net/qq_38386316/article/details/88790660
1. 在eclipse中加入spring aop 的依赖包
1.1 所需依赖如下所示:
- aopalliance-1.0.jar
- asm-3.3.1.jar
- aspectj-1.7.1.jar
- aspectjrt-1.7.0.jar(在aspectj-1.7.1.jar里面)
- aspectjweaver-1.7.0.jar(在aspectj-1.7.1.jar里面)
- cglib-2.2.2.jar
我找这几个依赖时,除了aspectj-1.7.1.jar
,其余都是在这个Meven下载Search 一下你所要找的jar包就可以了 的。
1.2 在eclipse中配置aspectj的库文件就可以了:
配置方法可以参考spring_fragment_学习记录 01.
1.2 First Aspect
- org.zcs.springAop - AopMain.java
package org.zcs.springAop;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.zcs.springAop.service.ShapeService;
public class AopMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
ShapeService shapeservice = ctx.getBean("shapeService", ShapeService.class);
System.out.println(shapeservice.getCircle().getName());
}
}
- org.zcs.springAop.asepect-LoggingAspect.java
package org.zcs.springAop.aspect;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class LoggingAspect {
@Before("execution( public String getName())")
public void LoggingAdvice() {
System.out.println("Advice running.... Get Method called.");
}
}
- org.zcs.springAop.model-Circle
package org.zcs.springAop.model;
public class Circle {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- org.zcs.springAop.model-Triangle.java
package org.zcs.springAop.model;
public class Triangle {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- org.zcs.springAop.service-ShapeService.java
package org.zcs.springAop.service;
import org.zcs.springAop.model.Circle;
import org.zcs.springAop.model.Triangle;
public class ShapeService {
private Circle circle;
private Triangle triangle;
public Circle getCircle() {
return circle;
}
public void setCircle(Circle circle) {
this.circle = circle;
}
public Triangle getTriangle() {
return triangle;
}
public void setTriangle(Triangle triangle) {
this.triangle = triangle;
}
}
- spring.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.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<bean name="triangle" class = "org.zcs.springAop.model.Triangle">
<property name="name" value = "Triangle name"></property>
</bean>
<bean name = "circle" class = "org.zcs.springAop.model.Circle">
<property name="name" value = "Circle name"></property>
</bean>
<bean name="shapeService" class="org.zcs.springAop.service.ShapeService" autowire = "byName"></bean>
<bean name= "loggingAspect" class = "org.zcs.springAop.aspect.LoggingAspect"></bean>
</beans>
3.学习记录。
- 其中bean文件中的头文件来自官网的参考文件中可以找到。
- 学习了aspect的应用,和在bean中的配置。
- 复习了bean中的自动装载的知识。