<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學(xué)習(xí)

    java學(xué)習(xí)

     

    利用BeanPostProcessor接口實現(xiàn)bean初始化的前后執(zhí)行方法

    1、aop的簡單實現(xiàn)
    public class User implements InitializingBean,DisposableBean{
    public String toString() {
    System.out.println("userdddd");
    return "444";
    }
    @Override
    public void afterPropertiesSet() throws Exception {
    System.out.println(" user afterPropertiesSet");
    }
    @Override
    public void destroy() throws Exception {
    System.out.println("user destroy");
    }
    }
    public class LogUser extends User{
    public String toString() {
    System.out.println("log start");
    super.toString();
    System.out.println("log end");
    return "";
    }
    }
    public interface MyApplicationContextAware {
    void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
    }
    @Component
    public class Dog4 implements MyApplicationContextAware{
    ApplicationContext applicationContext;
    public ApplicationContext getApplicationContext() {
    return applicationContext;
    }
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext=applicationContext;
    }
    }
    @Component
    public class MyBeanPostProcessor implements BeanPostProcessor{
    @Autowired
    ApplicationContext applicationContext;
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    System.out.println("postProcessAfterInitialization=="+beanName);
    return BeanPostProcessor.super.postProcessAfterInitialization(bean, beanName);
    }
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    System.out.println("postProcessBeforeInitialization=="+beanName);
    if(bean instanceof User) {
    return new LogUser();
    }
    if(bean instanceof MyApplicationContextAware) {
    MyApplicationContextAware my=(MyApplicationContextAware) bean;
    my.setApplicationContext(applicationContext);
    }
    return BeanPostProcessor.super.postProcessBeforeInitialization(bean, beanName);
    }
    }
    public class App {
    public static void main(String[] args) {
    AnnotationConfigApplicationContext aa=new AnnotationConfigApplicationContext("com.yjw");
    Dog4 dog = aa.getBean(Dog4.class);
    System.out.println(dog.getApplicationContext());
    User user = aa.getBean(User.class);
    System.out.println(user.toString());
    aa.close();
    }
    }

    posted on 2018-03-06 15:34 楊軍威 閱讀(469) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费鲁丝片一级观看| 亚洲中文字幕丝袜制服一区| 最新中文字幕电影免费观看| 亚洲毛片网址在线观看中文字幕 | 日本亚洲国产一区二区三区 | 久久久久亚洲av毛片大| 亚洲最大中文字幕| 亚洲天堂免费在线视频| 免费电视剧在线观看| 亚洲国产精品SSS在线观看AV| 亚洲精品乱码久久久久久V| 91青青青国产在观免费影视| 亚洲午夜精品一级在线播放放 | 亚洲成a∨人片在无码2023| 国产精品免费小视频| 亚洲另类春色校园小说| 免费a级毛片无码a∨免费软件| 国产免费啪嗒啪嗒视频看看| 亚洲国产日韩在线一区| 曰曰鲁夜夜免费播放视频| 亚洲阿v天堂在线| 亚洲色大成网站www永久男同| 免费无码毛片一区二区APP| AV在线播放日韩亚洲欧| 日韩电影免费在线观看网站| 亚洲一二成人精品区| 亚洲AV噜噜一区二区三区| 亚欧免费视频一区二区三区| 亚洲VA中文字幕无码一二三区 | 亚洲av无码一区二区三区观看| 99re6在线精品免费观看| 免费人成网站在线播放| 亚洲avav天堂av在线网毛片| 一区国严二区亚洲三区| 国产亚洲精品美女久久久久久下载| 成年女人毛片免费视频| 五月天婷婷精品免费视频| 亚洲国产成人精品女人久久久 | 国产成人亚洲精品影院| 人与禽交免费网站视频| 添bbb免费观看高清视频|