欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

@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);   } }

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

@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);
  }
}

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

@Test
  public void test() throws SQLException {
    //通過從classpath中加載spring-mybatis.xml實(shí)現(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編程實(shí)現(xiàn)Aware接口自定義獲取bean的兩種方式的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如果有什么問題,可以留言,小編會(huì)及時(shí)回復(fù)大家。感謝大家對(duì)本站的支持!

相關(guān)文章

  • Java getParameter方法案例詳解

    Java getParameter方法案例詳解

    這篇文章主要介紹了Java getParameter方法案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • springboot集成swagger過程解析

    springboot集成swagger過程解析

    這篇文章主要介紹了springboot集成swagger過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • spring中BeanUtils.copyProperties的使用(深拷貝,淺拷貝)

    spring中BeanUtils.copyProperties的使用(深拷貝,淺拷貝)

    本文主要介紹了spring中BeanUtils.copyProperties的使用(深拷貝,淺拷貝),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 零基礎(chǔ)寫Java知乎爬蟲之進(jìn)階篇

    零基礎(chǔ)寫Java知乎爬蟲之進(jìn)階篇

    前面幾篇文章,我們都是簡(jiǎn)單的實(shí)現(xiàn)了java爬蟲抓取內(nèi)容的問題,那么如果遇到復(fù)雜情況,我們還能繼續(xù)那么做嗎?答案當(dāng)然是否定的,之前的僅僅是入門篇,都是些基礎(chǔ)知識(shí),給大家練手用的,本文我們就來點(diǎn)高大上的東西
    2014-11-11
  • java+MongoDB實(shí)現(xiàn)存圖片、下載圖片的方法示例

    java+MongoDB實(shí)現(xiàn)存圖片、下載圖片的方法示例

    這篇文章主要介紹了java+MongoDB實(shí)現(xiàn)存圖片、下載圖片的方法,結(jié)合實(shí)例形式詳細(xì)分析了java結(jié)合MongoDB實(shí)現(xiàn)圖片的存儲(chǔ)與下載相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Java實(shí)現(xiàn)網(wǎng)絡(luò)文件下載以及下載到指定目錄

    Java實(shí)現(xiàn)網(wǎng)絡(luò)文件下載以及下載到指定目錄

    在Spring框架中,StreamUtils和FileCopyUtils兩個(gè)工具類提供了方便的文件下載功能,它們都屬于org.springframework.util包,可以通過簡(jiǎn)單的方法調(diào)用實(shí)現(xiàn)文件流的復(fù)制和下載,這些工具類支持多種參數(shù)傳遞,涵蓋了文件下載的多種場(chǎng)景
    2024-09-09
  • 頁面的緩存與不緩存設(shè)置及html頁面中meta的作用

    頁面的緩存與不緩存設(shè)置及html頁面中meta的作用

    這篇文章主要介紹了頁面的緩存與不緩存設(shè)置及html頁面中meta的作用的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對(duì)象自動(dòng)注入操作

    java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對(duì)象自動(dòng)注入操作

    這篇文章主要介紹了java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對(duì)象自動(dòng)注入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java基礎(chǔ)詳解之包裝類的裝箱拆箱

    Java基礎(chǔ)詳解之包裝類的裝箱拆箱

    這篇文章主要介紹了Java基礎(chǔ)詳解之包裝類的裝箱拆箱,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java實(shí)現(xiàn)差分?jǐn)?shù)組的示例詳解

    Java實(shí)現(xiàn)差分?jǐn)?shù)組的示例詳解

    差分?jǐn)?shù)組是由原數(shù)組進(jìn)化而來,值為原數(shù)組當(dāng)前位置值減去上一個(gè)位置的值。本文將通過例題詳解如何利用Java實(shí)現(xiàn)差分?jǐn)?shù)組,需要的可以參考一下
    2022-06-06

最新評(píng)論