都几个月了,总是搞这些开源的玩意,老的还没有啃完,又来了一个小的。我是天天在这几个开源的项目之间切来切去,搞得我头昏脑胀。今天是星期五,休息休息,搞下aop。
下面是Aop的入门例子,及其简单,我只是换下心情。
运用的是jdk的动态代理
a. 编写UserManagerImpl的接口UserManager
package com.yyn.user;
public interface UserManager {
public void addUser(String name,String password);
public void delUser(int id);
}
b. 编写UserManagerImp.java
package com.yyn.user;
public class UserManagerImpl implements UserManager{
public void addUser(String name, String password) {
System.out.println("UserManagerImpl.addUser");
}
public void delUser(int id) {
System.out.println("UserManagerImpl.delUser");
}
}
c. 编写aop 的aspect类Check.java
package com.yyn.aspect;
/**
[align=left][/align]*
* @author Administrator
* aop 的aspect
*/
public class Check {
/**
* aop 的advice
* **/
public void says(){
System.out.println("开始检查.....");
}
}
d. 编写aop的spring配置文件bean.xml
<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-2.5.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">
<bean id="UserManagerImpl" class="com.yyn.user.UserManagerImpl"></bean>
<bean id="Advice" class="com.yyn.aspect.Check"></bean>
<aop:config>
<aop:aspect ref="Advice">
<aop:pointcut id="pointcut" expression="execution(* com.yyn.user.UserManagerImpl.*(..))" /><!-- 切入点表达式 -->
<aop:before pointcut-ref="pointcut" method="says"/><!--在 切入点方法之前执行检查操作 -->
</aop:aspect>
</aop:config>
</beans>
e. 开始测试
package com.yyn.test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yyn.user.UserManager;
public class Main {
public static void main(String[] args) {
BeanFactory bf = new ClassPathXmlApplicationContext ("beans.xml") ;
UserManager userManager =(UserManager) bf.getBean("UserManagerImpl") ;
userManager.delUser(1) ;
}
}
下面是Aop的入门例子,及其简单,我只是换下心情。
运用的是jdk的动态代理
a. 编写UserManagerImpl的接口UserManager
package com.yyn.user;
public interface UserManager {
public void addUser(String name,String password);
public void delUser(int id);
}
b. 编写UserManagerImp.java
package com.yyn.user;
public class UserManagerImpl implements UserManager{
public void addUser(String name, String password) {
System.out.println("UserManagerImpl.addUser");
}
public void delUser(int id) {
System.out.println("UserManagerImpl.delUser");
}
}
c. 编写aop 的aspect类Check.java
package com.yyn.aspect;
/**
[align=left][/align]*
* @author Administrator
* aop 的aspect
*/
public class Check {
/**
* aop 的advice
* **/
public void says(){
System.out.println("开始检查.....");
}
}
d. 编写aop的spring配置文件bean.xml
<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-2.5.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">
<bean id="UserManagerImpl" class="com.yyn.user.UserManagerImpl"></bean>
<bean id="Advice" class="com.yyn.aspect.Check"></bean>
<aop:config>
<aop:aspect ref="Advice">
<aop:pointcut id="pointcut" expression="execution(* com.yyn.user.UserManagerImpl.*(..))" /><!-- 切入点表达式 -->
<aop:before pointcut-ref="pointcut" method="says"/><!--在 切入点方法之前执行检查操作 -->
</aop:aspect>
</aop:config>
</beans>
e. 开始测试
package com.yyn.test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yyn.user.UserManager;
public class Main {
public static void main(String[] args) {
BeanFactory bf = new ClassPathXmlApplicationContext ("beans.xml") ;
UserManager userManager =(UserManager) bf.getBean("UserManagerImpl") ;
userManager.delUser(1) ;
}
}