zoukankan      html  css  js  c++  java
  • Spring(十一)-- Spring代理生成器

    Spring代理生成器

    1.创建需要的dao接口

    2.创建需要的daoImpl实现类

    3.创建前置增强类

    4.创建spring.xml文件

    <!--  这个案例 需要解决的问题:
       一个代理工厂 配置 多个目标对象!-->
        <!--01.配置目标对象-->
        <bean id="userDao" class="com.xdf.dao.UserDaoImpl"/>
        <!--为了 测试 会给 所有的bean注入增强-->
        <bean id="userDao2" class="com.xdf.dao.UserDaoImpl"/>
    
        <!--02.配置相应的增强类-->
        <bean id="before" class="com.xdf.dao.BeforeAdvice"/>
    
        <!--03.设置顾问  让目标对象和通知产生关系-->
        <bean id="myAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
            <!--配置通知-->
            <property name="advice" ref="before"/>
            <!--配置切入点-->
            <property name="mappedName"  value="sleep"/>
        </bean>
    
        <!--04.配置自动的代理生成器 底层其实就是执行了bean的后处理器
         弊端:  就是会给容器中所有的bean 都注入增强! 不能取消!-->
        <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>

    5. 创建测试类

     @Test
     public  void  defaultTest(){
         ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
         UserDao dao= context.getBean("userDao", UserDao.class);
         //UserDao dao= context.getBean("userDao2", UserDao.class);  也会被注入增强方法
         dao.eat();
         dao.sleep();
    }

      我们肯定不需要容器管理的所有bean都被增强! 这时候就需要使用另外一个BeanNameAutoProxyCeator!

    6. 创建beanName.xml文件

    7. 创建测试方法

  • 相关阅读:
    设计模式-观察者模式
    idea 生成 protobuf
    springboot @Autowride 注入空 调用时报Null空指针
    Netty 服务端创建过程
    git failed to push some refs to
    SPI simp
    Controller之statefulset
    Service
    Controller之deployment
    rabbitmq“ Login was refused using authentication mechanism PLAIN”
  • 原文地址:https://www.cnblogs.com/fl72/p/9655848.html
Copyright © 2011-2022 走看看