java中的静态代理

来源:互联网 发布:ackerman函数 JAVA 编辑:程序博客网 时间:2024/06/05 16:44

IUserDao.java

package com.pactera.dao;public interface IUserDao {    void save();}

UserDao.java

package com.pactera.daoImpl;import com.pactera.dao.IUserDao;public class UserDao implements IUserDao{    @Override    public void save() {        System.out.println("userDao save()");    }}

UserDaoProxy.java

package com.pactera.proxy;import org.springframework.stereotype.Component;import com.pactera.dao.IUserDao;@Component                  //静态代理                            //1.静态代理必需维护与目标对象一样的接口                            //2.代理类需要维护一个目标对象public class UserDaoProxy implements IUserDao{    @Override    public void save() {        System.out.println("模拟事务开启");        System.out.println("userDao save()");        System.out.println("模拟事务关闭");    }}

测试

package com.pactera.springBeanTest;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.pactera.proxy.UserDaoProxy;public class TestSpringBean {    @Test    public void testIOC(){        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");        UserDaoProxy udp = ac.getBean("userDaoProxy", UserDaoProxy.class);        udp.save();    }}

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:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    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.xsd">    <!-- 扫描包,将配有指定注解的类注入容器 -->    <context:component-scan base-package="com.pactera"></context:component-scan></beans>   
0 0