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!spring

6. 建立beanName.xml文件

7. 建立測試方法

相關文章
相關標籤/搜索