Spring_demo5_AOP_Annotation
来源:互联网 发布:娱乐圈八卦知乎天涯 编辑:程序博客网 时间:2024/06/05 08:50
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: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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd "><context:annotation-config /><context:component-scan base-package="com"/><aop:aspectj-autoproxy /></beans>
用户管理接口
package com.dao;import com.model.User;public interface UserDAO {public void save(User user);}
用户管理接口实现
package com.dao.impl;import org.springframework.stereotype.Component;import com.dao.UserDAO;import com.model.User;@Component("userDao")public class UserDaoImpl implements UserDAO{@Overridepublic void save(User user) {System.out.println("Mysql: " + user.getUsername());}}
切面AOP
package com.aop;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;@Aspect@Componentpublic class AopTest {//@Before("execution(public void com.dao.impl.UserDaoImpl.save(com.model.User))")@Pointcut("execution(public * com.dao..*.*(..))")public void myMethod(){};//@Before("myMethod()")//@Before("execution(public void com.dao.impl.UserDaoImpl.save(com.model.User))")@Before("execution(public * com.service..*.add(..))")public void before(){System.out.println("AopTest success");}}
逻辑处理Service
package com.service;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Component;import com.dao.UserDAO;import com.model.User;@Component("userService")public class UserService {private UserDAO userDAO; public void add(User user) {userDAO.save(user);}public UserDAO getUserDAO() {return userDAO;}/** * @Resource 默认使用userDAO(前提只有一个bean) * @Resource(name = "user2") * @param userDAO *//*@Resource*/@Resource(name = "userDao")public void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}}
AOP测试
package com.service;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.model.User;/** * Dao主要做数据库的交互工作 * Modle 是模型 存放你的实体类 *Service 做相应的业务逻辑处理 *Action是一个控制器 * @author tao.zeng * */public class UserServiceTest {@Testpublic void testAdd() throws Exception {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");UserService service = (UserService)ctx.getBean("userService");User u = new User();u.setUsername("syw");u.setPassword("syw");service.add(u);}}
效果图:
阅读全文
0 0