一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Spring實(shí)現(xiàn)Aware接口自定義獲取bean的兩種方式

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

2021-01-08 11:45麻瓜_ Java教程

這篇文章主要介紹了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)單:

?
1
2
3
4
5
6
7
8
9
10
11
@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)單:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
@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ì)本站的支持!

原文鏈接:http://www.cnblogs.com/handsomeye/p/6277510.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.羞羞答答| 亚洲国产一区二区三区青草影视 | 天美传媒tm0087 | 男生同性视频twink在线 | 日本午夜色| 日韩欧美一区二区不卡 | 美女露尿口 | 国产99久久九九精品免费 | 国内会所按摩推拿国产 | 韩国最新理论三级在线观看 | 国内精品久久久久久久久 | 色婷婷精品| 国产在线视频第一页 | 性色香蕉AV久久久天天网 | 99超级碰碰成人香蕉网 | 亚洲精品色婷婷在线影院麻豆 | 亚洲女人国产香蕉久久精品 | 国产好痛疼轻点好爽的视频 | 日本中文字幕在线观看视频 | 性的张力 | videos欧美肥婆 | 国产成年人视频 | 99精品国产自产在线观看 | 精品久久成人 | 精品一区heyzo在线播放 | 被强迫调教的高辣小说 | 亚洲国产欧美另类 | 国产精品极品美女自在线 | 农夫成人网 | 情趣内衣情趣玩具play | 91天堂国产在线 在线播放 | 国产精品毛片高清在线完整版 | 亚洲精品午夜久久aaa级久久久 | 天堂在线中文无弹窗全文阅读 | a人片| 午夜性色一区二区三区不卡视频 | 免费成年网| 国产精品九九久久一区hh | 国产成人精品曰本亚洲77美色 | bt岛www| 欧美精品综合一区二区三区 |