Spring的AOP使用xml配置
2016-03-22 10:40
525 查看
需要使用spring的包,大家自己全部导入进去即可。省4........
用户管理接口
package com.rx.spring;
public interface UserManager {
public void addUser(String username, String password);
public void deleteUser(int id);
}
用户管理实现
package com.rx.spring;
public class UserManagerImpl implements UserManager {
public void addUser(String username, String password) {
System.out.println("-------UserManagerImpl.addUser()----------");
}
public void deleteUser(int id) {
System.out.println("-------UserManagerImpl.deleteUser()----------");
}
}
切面
package com.rx.spring;
public class SecurityHandler {
private void checkSecurity() {
System.out.println("----------checkSecurity()---------------");
}
}
applicationContext.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="securityHandler" class="com.rx.spring.SecurityHandler"/>
<bean id="userManager" class="com.rx.spring.UserManagerImpl"/>
<aop:config>
<aop:aspect id="security" ref="securityHandler">
<aop:pointcut id="allAddMethod" expression="execution(* com.rx.spring.UserManagerImpl.add*(..))"/>
<aop:before method="checkSecurity" pointcut-ref="allAddMethod"/>
<aop:after method="checkSecurity" pointcut-ref="allAddMethod"/>
</aop:aspect>
</aop:config>
</beans>
客户端调用:
package com.rx.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager userManager = (UserManager)factory.getBean("userManager");
userManager.addUser("sd", "123");
userManager.deleteUser(1);
}
}
运行结果:
----------checkSecurity()---------------
-------UserManagerImpl.addUser()----------
----------checkSecurity()---------------
-------UserManagerImpl.deleteUser()----------
用户管理接口
package com.rx.spring;
public interface UserManager {
public void addUser(String username, String password);
public void deleteUser(int id);
}
用户管理实现
package com.rx.spring;
public class UserManagerImpl implements UserManager {
public void addUser(String username, String password) {
System.out.println("-------UserManagerImpl.addUser()----------");
}
public void deleteUser(int id) {
System.out.println("-------UserManagerImpl.deleteUser()----------");
}
}
切面
package com.rx.spring;
public class SecurityHandler {
private void checkSecurity() {
System.out.println("----------checkSecurity()---------------");
}
}
applicationContext.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="securityHandler" class="com.rx.spring.SecurityHandler"/>
<bean id="userManager" class="com.rx.spring.UserManagerImpl"/>
<aop:config>
<aop:aspect id="security" ref="securityHandler">
<aop:pointcut id="allAddMethod" expression="execution(* com.rx.spring.UserManagerImpl.add*(..))"/>
<aop:before method="checkSecurity" pointcut-ref="allAddMethod"/>
<aop:after method="checkSecurity" pointcut-ref="allAddMethod"/>
</aop:aspect>
</aop:config>
</beans>
客户端调用:
package com.rx.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager userManager = (UserManager)factory.getBean("userManager");
userManager.addUser("sd", "123");
userManager.deleteUser(1);
}
}
运行结果:
----------checkSecurity()---------------
-------UserManagerImpl.addUser()----------
----------checkSecurity()---------------
-------UserManagerImpl.deleteUser()----------
相关文章推荐
- Eclipse 中的重构功能
- Java的字节流和字符流
- JavaScrit常用的简单交互
- Java数组取交集
- Java内存区域
- Java中父类与子类的普通代码块,构造代码块,静态代码块 初始化
- Spring 一二事(1)
- Spring MVC with Maven - java.lang.ClassNotFoundException: org.springframework.web.servlet.Dispatcher
- Java设计模式之策略模式
- 《Head First Java》读后记录
- Java 四种线程池
- java中class.forName和classLoader加载类的区分
- MyEclipse项目上有红色感叹号
- eclipse创建、导入项目文件缺失问题(主要是R文件)
- Java实现事件机制
- JAVA AIO BIO NIO
- springMVC 异常统一处理类
- java lambda小纪
- Java 控制线程
- spring MVC配置详解