spring-AOP

spring-AOP

1,实体类

public class User {
	
	private String username;
	private String password;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}
2,数据库操作Dao类

public interface UserDao {
	
	public void save(User u);
	
}
3,数据库实现类

@Component
public class UserDaoImpl implements UserDao{

	@Override
	public void save(User u) {
		System.out.println("a user save !");
	}
	
}
4,业务service类

@Service
public class UserService {
	
	private UserDao userDao;
	
	public UserDao getUserDao() {
		return userDao;
	}
	
	@Resource   //默认是按名称userDao
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
	public void Add(User u){
		this.userDao.save(u);
	}
}
5,代理处理类

@Aspect
public class LogInterceptor {
	
	public void before(){
		System.out.println("method start!");
	}
	public void end(){
		System.out.println("method end!");
	}
}

6,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: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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-2.5.xsd" >
	
	<context:annotation-config /> 
	 <!--默认初始化4个处理annotation的bean,若扫描到写的有@Autowired 将会调用set方法注入  
	 		 是根据byType注入的   若有两个类型u的话,可以使用@Qualifier("u")  -->
	<context:component-scan base-package="com.cn.sxt" />
	<!-- 开启自动扫描,之后就不用bean注,会自动根据类名首字母小写作为bena的名字 -->
	
	<bean id="logInteceptor" class="com.cn.sxt.aop.LogInterceptor"></bean>
	<aop:config>
		<aop:pointcut expression="execution(public * com.cn.sxt.service..*.*(..))" id="servicePointcut"/>
		<aop:aspect id="logAspect" ref="logInteceptor">
			<aop:before method="before" pointcut-ref="servicePointcut"/>
			<aop:after method="end" pointcut-ref="servicePointcut"/>
		</aop:aspect>
	</aop:config>
</beans>

7,测试类

@Test
	public void testAdd() throws JDOMException, IOException, InstantiationException, IllegalAccessException, ClassNotFoundException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
		ApplicationContext acx = new ClassPathXmlApplicationContext("beans.xml");
		UserService userService = (UserService) acx.getBean("userService");
		User u = new User();
		userService.Add(u);
	} 
8,结果输出:
method start!
a user save !
method end!







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值