package com.ml.test;
public interface Manager //接口
{
public void addUser(String name, String password);
public void delUser(int id);
public void modifyUser(int id, String name, String password);
}
package com.ml.test;
public class ManagerImpl implements Manager //接口实现类
{
public void addUser(String name, String password)
{
System.out.println("UserManagerImpl.addUser() -- name: ");
}
public void delUser(int id)
{
System.out.println("UserManagerImpl.delUser() -- id: ");
}
public void modifyUser(int id, String name, String password)
{
System.out.println("UserManagerImpl.modifyUser() -- id: ");
}
}
package com.ml.test;
public class MySecurityManagerImpl //Aspect代理类
{
public void checkSecurity()
{
System.out.println("checkSecurity the program");
}
}
package com.ml.test;
import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;
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");
Manager manager = (Manager)factory.getBean("userManager");
manager.addUser("张三", "123");
manager.delUser(12);
manager.modifyUser(12, "123", "345");
}
}
applicationContext.xml 文件
<bean id="userManager" class="com.ml.test.ManagerImpl" />
<bean id="SecurityManager" class="com.ml.test.MySecurityManagerImpl" />
<aop:config>
<aop:pointcut id="allMethod" expression="execution(* com.ml.test.*.*(..))" />
<aop:aspect id="Manager" ref="SecurityManager" >
<aop:before method="checkSecurity" pointcut-ref="allMethod" />
</aop:aspect>
</aop:config>