真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Spring容器擴展機制的原理是什么

Spring容器擴展機制的原理是什么?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務器托管提供商,專業(yè)提供成都服務器托管,服務器租用,樂山服務器托管,樂山服務器托管,成都多線服務器托管等服務器托管服務。

BeanPostProcessor 接口

如果希望在Spring容器完成實例化、配置和初始化bean之后實現(xiàn)某些自定義邏輯, 則可以實現(xiàn)一個或多個 BeanPostProcessor 接口.

public interface BeanPostProcessor {

  @Nullable
  default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    return bean;
  }

  @Nullable
  default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    return bean;
  }

}

在 Bean 實例化之后會先執(zhí)行 postProcessBeforeInitialization 方法, 再執(zhí)行 Bean 的初始化方法, 然后在執(zhí)行 postProcessAfterInitialization 方法.

Ordered 接口 @Order 注解

此接口只有一個方法 int getOrder(); 用來設置執(zhí)行順序.

如果實現(xiàn)多個 BeanPostProcessor 接口, 我們就可以實現(xiàn) Ordered 接口來設置執(zhí)行順序.

@Component
public class Test implements BeanPostProcessor, Ordered {

  @Override
  public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    return bean;
  }

  @Override
  public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    return bean;
  }

  @Override
  public int getOrder() {
    return 1;
  }
}

也可以使用 @Order 注解進行排序

@Configuration
@Order(2)
public class Demo1Config {
  @Bean
  public Demo1Service demo1Service(){
    System.out.println("demo1config 加載了");
    return new Demo1Service();
  }

}

看完上述內(nèi)容,你們掌握Spring容器擴展機制的原理是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章題目:Spring容器擴展機制的原理是什么
網(wǎng)頁路徑:http://weahome.cn/article/ghgdhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部