1.建立工程后,首先所需要的导入jar
---------------------------------------------------------------------------------------------------------------------- 2.导入jar后,就该配置xml 注意下面红色的配置
<?xml version="1.0"encoding="UTF-8"?>
<!-- 需要对下面命名空间配置 -->
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:aop="/schema/aop"
xmlns:jms="/schema/jms"
xmlns:context="/schema/context"
xsi:schemaLocation="
/schema/beans
/schema/beans/spring-beans-2.5.xsd /schema/jms
/schema/jms/spring-jms-2.5.xsd
/schema/aop
/schema/aop/spring-aop-2.5.xsd
/schema/context
/schema/context/spring-context-2.5. xsd">
<!-- 打开AOP注解配置(支持) -->
<aop:aspectj-autoproxy/>
</beans>
----------------------------------------------------------------------------------------------------------------------
3.创建接口
package spring.aop.service;
public interface PeopleService {
public void save(String name);
public void update(Integer id,String name);
public String getPeopleName(Integer id);
}
---------------------------------------------------------------------------------------------------------------------- 4.实现累(业务bean)
package spring.aop.impl;
import spring.aop.service.PeopleService;
public class PeopleServiceBean implements PeopleService{
@Override
public String getPeopleName(Integer id) {
System.out.println("this is getPeopleName method");
return"XXX";
}
@Override
public void save(String name) {
System.out.println("this is save method");
}
@Override
public void update(Integer id, String name) {
System.out.println("this is update method");
}
}
5.接下来了解下注解符号
1.第一步首先声明切面类
package spring.aop.interceptor;
import ng.annotation.Aspect;
@Aspect
public class MyInterceptor {
2.声明切入点 ---拦截
@Pointcut("execution(* spring.aop.annotation..*.*(..))")
public void anyMethod(){}//设置切入点(也就是说这个anyMethod()方法来代替切入的方法)
//切入点:第一个*指的是对于任意返回类型,接下来spring.aop.annotation 包
..指的是:本包或者字包里面,*这里指的是任意类,然后接下来*指的是任意方法(..)指的是任意参数
3.设置前置通知
@Before("anyMethod()")
//拦截方法,在执行前先执行anyMethod()
public void doAccessCheck(String name){
//这个是前置通知的方法,在调用bean实例方法前
System.out.println("这是前置通知"+name);
}
}
6.编写测试类
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import
org.springframework.context.support.AbstractApplicationContext; import
org.springframework.context.support.ClassPathXmlApplicationContex t;
import spring.aop.service.PeopleService;
public class Junit4_test {
@Test
public void test(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PeopleService
peopleService=(PeopleService)ctx.getBean("peopleService");
peopleService.save("xixi");
// peopleService.getPeopleName(11);
}
}
实验总结:
过程中遇到问题
org.springframework.beans.factory.BeanDefinitionStoreException: IOException
该问题是由于建立该项目是Java项目,beans.xml直接放在根目录里面,没有放在src里面,导致出错,如果是web项目是放在webroot里面。