最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring實現(xiàn)Aware接口自定義獲取bean的兩種方式

 更新時間:2017年09月22日 08:38:20   作者:麻瓜_  
這篇文章主要介紹了Java編程實現(xiàn)Aware接口自定義獲取bean的兩種方式,通過BeanFactoryAware和ApplicationContextAware,具有一定參考價值,需要的朋友可以了解下。

在使用spring編程時,常常會遇到想根據(jù)bean的名稱來獲取相應的bean對象,這時候,就可以通過實現(xiàn)BeanFactoryAware來滿足需求,代碼很簡單:

@Servicepublic class BeanFactoryHelper implements BeanFactoryAware {
  private static BeanFactory beanFactory;
  @Override
  public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
    this.beanFactory = beanFactory;
  }
  public static Object getBean(String beanName){
     if(beanFactory == null){
      throw new NullPointerException("BeanFactory is null!");
    }
     return beanFactory.getBean(beanName);   } }

還有一種方式是實現(xiàn)ApplicationContextAware接口,代碼也很簡單:

@Service
public class ApplicationContextHelper implements ApplicationContextAware {
  private static ApplicationContext applicationContext;
  @Override
  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext = applicationContext;
  }
  public static Object getBean(String beanName){
    if(applicationContext == null){
      throw new NullPointerException("ApplicationContext is null!");
    }
    return applicationContext.getBean(beanName);
  }
}

上面兩種方法,只有容器啟動的時候,才會把 BeanFactoryApplicationContext 注入到自定義的helper類中,如果在本地junit測試的時候,如果需要根據(jù)bean的名稱獲取bean對象,則可以通過ClassPathXmlApplicationContext來獲取一個ApplicationContext,代碼如下:

@Test
  public void test() throws SQLException {
    //通過從classpath中加載spring-mybatis.xml實現(xiàn)bean的獲取
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
    IUserService userService = (IUserService) context.getBean("userService");
    User user = new User();
    user.setName("test");
    user.setAge(20);
    userService.addUser(user);
  }

總結(jié)

以上就是小編分享給大家的Java編程實現(xiàn)Aware接口自定義獲取bean的兩種方式的全部內(nèi)容,希望對大家有所幫助。如果有什么問題,可以留言,小編會及時回復大家。感謝大家對本站的支持!

相關文章

  • Spring Boot基于數(shù)據(jù)庫如何實現(xiàn)簡單的分布式鎖

    Spring Boot基于數(shù)據(jù)庫如何實現(xiàn)簡單的分布式鎖

    這篇文章主要給大家介紹了關于Spring Boot基于數(shù)據(jù)庫如何實現(xiàn)簡單的分布式鎖的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • zookeeper的watch機制原理解析

    zookeeper的watch機制原理解析

    Watcher,異步通知客戶端,并且刪除哈希表中對應的 Key-Value,這篇文章主要介紹了zookeeper的watch機制詳細講解,需要的朋友可以參考下
    2022-06-06
  • 輕松掌握java組合模式

    輕松掌握java組合模式

    這篇文章主要幫助大家輕松掌握java組合模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java 生成圖片驗證碼3種方法(字母、加減乘除、中文)

    Java 生成圖片驗證碼3種方法(字母、加減乘除、中文)

    這篇文章主要介紹了Java 生成圖片驗證碼3種方法(字母、加減乘除、中文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 簡述Java中進程與線程的關系_動力節(jié)點Java學院整理

    簡述Java中進程與線程的關系_動力節(jié)點Java學院整理

    在 Java 語言中,對進程和線程的封裝,分別提供了 Process 和 Thread 相關的一些類。本文首先簡單的介紹如何使用這些類來創(chuàng)建進程和線程
    2017-05-05
  • 詳解Java8?CompletableFuture的并行處理用法

    詳解Java8?CompletableFuture的并行處理用法

    Java8中有一個工具非常有用,那就是CompletableFuture,本章主要講解CompletableFuture的并行處理用法,感興趣的小伙伴可以了解一下
    2022-04-04
  • Java常用排序算法及性能測試集合

    Java常用排序算法及性能測試集合

    周末天氣不好,在家無事,把常用排序算法理了一遍,收獲不小,特寫文章紀念。這些算法在學校的時候?qū)W過一遍,很多原理都忘記了
    2013-06-06
  • SpringBoot結(jié)合Redis實現(xiàn)接口冪等性的示例代碼

    SpringBoot結(jié)合Redis實現(xiàn)接口冪等性的示例代碼

    本文主要介紹了SpringBoot結(jié)合Redis實現(xiàn)接口冪等性的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Servlet的線程安全問題

    Servlet的線程安全問題

    本文主要介紹了Servlet的線程安全問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • JavaMail實現(xiàn)郵件發(fā)送的方法

    JavaMail實現(xiàn)郵件發(fā)送的方法

    這篇文章主要介紹了JavaMail實現(xiàn)郵件發(fā)送的方法,實例分析了java實現(xiàn)郵件發(fā)送的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04

最新評論

米脂县| 乐至县| 萨迦县| 陇南市| 高雄市| 金寨县| 开封县| 大城县| 尼勒克县| 海伦市| 丰宁| 乃东县| 曲阜市| 纳雍县| 高雄县| 陇川县| 两当县| 离岛区| 河西区| 个旧市| 屏边| 盖州市| 侯马市| 丹东市| 富阳市| 齐河县| 永靖县| 长宁县| 栾川县| 清徐县| 克什克腾旗| 聂拉木县| 江源县| 麦盖提县| 赤城县| 广安市| 杭州市| 保康县| 普兰店市| 方城县| 鸡泽县|