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

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

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

    java學習

    java學習

     

    利用BeanPostProcessor接口實現bean初始化的前后執行方法

    1、aop的簡單實現
    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)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 欧洲 亚洲 国产图片综合| 亚洲精品少妇30p| 亚洲1区1区3区4区产品乱码芒果| 免费91最新地址永久入口 | 中文字幕亚洲男人的天堂网络| 精品亚洲永久免费精品| 国产亚洲福利精品一区| 精品视频在线免费观看| 久久亚洲AV成人无码软件| 最近中文字幕大全中文字幕免费| 亚洲国产香蕉碰碰人人| 久久精品乱子伦免费| 亚洲激情中文字幕| 亚洲成人免费电影| 99久久久国产精品免费无卡顿| 免费AA片少妇人AA片直播 | 亚洲国产精品日韩在线| 免费视频成人国产精品网站| 污视频在线免费观看| 亚洲综合男人的天堂色婷婷| 亚洲综合av一区二区三区不卡 | 亚洲精品无码专区| 免费又黄又爽又猛的毛片| 国产成人A人亚洲精品无码| 国产成人精品一区二区三区免费| 中文字幕亚洲综合精品一区| 性做久久久久久久免费看| 国产亚洲欧美日韩亚洲中文色| 二区久久国产乱子伦免费精品| 久久精品九九亚洲精品| 在线观看无码AV网站永久免费| 亚洲丰满熟女一区二区哦| 最新精品亚洲成a人在线观看| 午夜精品射精入后重之免费观看| 亚洲一区二区三区四区视频| 国产一级淫片免费播放电影| 亚洲人成图片网站| 亚洲五月午夜免费在线视频| 无码国产精品一区二区免费16| 亚洲色少妇熟女11p| 亚洲精品无码久久一线|