spring静态代理
本人刚学SSH框架,为了巩固自己所学知识,简单的表达出思想,意在是自己能够看得明白,言语很不专业,希望达人不要板砖,欢迎指正,谢谢!
package com.spring;public interface UserManage {public void addUser(String name,String password);public void delUser(int userId);public String findUserById(int userId);public void modify(int userId,String name,String password);}package com.spring;public class UserManageImpl implements UserManage {@Overridepublic void addUser(String name, String password) {//checkSecurity();System.out.println("-------UserManageImpl.addUser---------");}@Overridepublic void delUser(int userId) {//checkSecurity();System.out.println("-------UserManageImpl.delUser---------");}@Overridepublic String findUserById(int userId) {//checkSecurity();System.out.println("-------UserManageImpl.findUserById---------");return "张三";}@Overridepublic void modify(int userId, String name, String password) {//checkSecurity();System.out.println("-------UserManageImpl.modify---------");}//private void checkSecurity(){//System.out.println("-------这是安全的--------");//}}package com.spring;/** * 静态代理,好处是不用修改以前的代码,但是这样checkSecurity()出现频数很大 * * @author Administrator * */public class UserManageImplProxy implements UserManage {private UserManage userManage;public UserManageImplProxy(UserManage userManage){this.userManage = userManage;}@Overridepublic void addUser(String name, String password) {checkSecurity();userManage.addUser(name, password);}@Overridepublic void delUser(int userId) {checkSecurity();userManage.delUser(userId);}@Overridepublic String findUserById(int userId) {checkSecurity();return userManage.findUserById(userId);}@Overridepublic void modify(int userId, String name, String password) {checkSecurity();userManage.modify(userId, name, password);}private void checkSecurity(){System.out.println("-------这是安全的--------");}}?import junit.framework.TestCase;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.spring.UserManageImplProxy;public class Test extends TestCase{BeanFactory factory = null;@Override//与servlet类似,只执行一次,所以常用于初始化protected void setUp() throws Exception {factory = new ClassPathXmlApplicationContext("applicationContext.xml");}@Override//与servlet类似,销毁时使用protected void tearDown() throws Exception {//}public void testAdd() {UserManageImplProxy uip = (UserManageImplProxy)factory.getBean("userManageProxy");uip.addUser("user01", "123456");System.out.println("代理添加成功");}}??总结: -------这是安全的--------