spring-AOP

原创 2016年08月29日 17:03:14

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!







版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

spring-aop-4.0.3.RELEASE-source.jar

  • 2017年10月21日 17:30
  • 321KB
  • 下载

Spring-Aop源码实现

  • 2016年09月12日 17:00
  • 99KB
  • 下载

Spring 之AOP AspectJ切入点语法详解(最全面、最详细。)

6.5  AspectJ切入点语法详解 6.5.1  Spring AOP支持的AspectJ切入点指示符        切入点指示符用来指示切入点表达式目的,,在Spring AOP...

spring----AOP实现

  • 2017年01月06日 17:40
  • 1.54MB
  • 下载

(9) 使用Spring的注解方式实现AOP入门 以及 细节

1:AOP的概念 Aspect(切面):指横切性关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面横切性关注点的抽象. joinpoint(连接点):所谓连...

spring AOP日志框架

  • 2017年06月25日 21:22
  • 46KB
  • 下载

Spring aop代码

  • 2017年06月30日 19:58
  • 15KB
  • 下载

Spring AOP深入理解之拦截器调用

Spring AOP深入理解之拦截器调用 Spring AOP代理对象生成回顾 上一篇博客中:深入理解Spring AOP之二代理对象生成介绍了Spri...

Spring Aop的简单实现

  • 2017年09月12日 17:14
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring-AOP
举报原因:
原因补充:

(最多只允许输入30个字)