配置和注解
版本spring4.2.4
## 配置 ##
第一步:导入jar包
aopalliance-1.0.jar
aspectjweaver-1.6.9.jar
commons-logging-1.1.3.jar
javax.annotation-3.1.2.jar
spring-aop-4.2.4.RELEASE.jar
spring-aspects-4.2.4.RELEASE.jar
spring-beans-4.2.4.RELEASE.jar
spring-context-4.2.4.RELEASE.jar
spring-context-support-4.2.4.RELEASE.jar
spring-core-4.2.4.RELEASE.jar
spring-expression-4.2.4.RELEASE.jar
spring-tx-4.2.4.RELEASE.jar
第二步:建立实体类
package com.entity;
public class Log {
public void loger(){
System.out.println("loger....");
}
public void show(){
System.out.println("方法结束...");
}
}
package com.entity;
public class Test {
public void abc(){
System.out.println("abc..");
}
}
package com.entity;
public class UserDao {
public void save(){
System.out.println("save");
}
public void add(){
System.out.println("add");
}
}
第三步:配置bean.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<bean id="aa" class="com.entity.Log"></bean>
<bean id="userdao" class="com.entity.UserDao"></bean>
<bean id="test" class="com.entity.Test"></bean>
<aop:config>
<aop:aspect id="loga" ref="aa">
<aop:before method="loger" pointcut="execution(public * com.entity..*.*(..))"/>
<aop:pointcut expression="execution(public * com.entity..*.a*(..))" id="yyy"/>
<aop:pointcut expression="execution(public * com.entity..UserDao.*(..))" id="aaa"/>
<aop:after method="show" pointcut-ref="aaa"/>
</aop:aspect>
</aop:config>
</beans>
第四步:建立测试类
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.entity.Test;
import com.entity.UserDao;
public class Demo {
public static void main(String[] args) {
ApplicationContext at= new ClassPathXmlApplicationContext("bean.xml");
UserDao u=(UserDao) at.getBean("userdao");
u.add();
u.save();
Test t=(Test) at.getBean("test");
t.abc();
}
}
## 注解 ##
注意:jar包与上面相同
package com.entity;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class Log {
@Before("execution(public * com.entity..*.*(..))")
public void loger(){
System.out.println("loger....");
}
@After("execution(public * com.entity..*.a*(..))")
public void show(){
System.out.println("方法结束...");
}
}
package com.entity;
import org.springframework.stereotype.Component;
@Component
public class Test {
public void abc(){
System.out.println("abc..");
}
}
package com.entity;
import org.springframework.stereotype.Component;
@Component
public class UserDao {
public void save(){
System.out.println("save");
}
public void add(){
System.out.println("add");
}
}
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.entity.Test;
import com.entity.UserDao;
public class Demo {
public static void main(String[] args) {
ApplicationContext at = new ClassPathXmlApplicationContext("bean.xml");
UserDao u = (UserDao)at.getBean("userDao");
u.add();
u.save();
Test t = (Test)at.getBean("test");
t.abc();
}
}
bean.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<context:annotation-config/>
<context:component-scan base-package="com"></context:component-scan>
<aop:aspectj-autoproxy/>
</beans>
测试类
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<context:annotation-config/>
<context:component-scan base-package="com"></context:component-scan>
<aop:aspectj-autoproxy/>
</beans>