国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Spring在代碼中獲取bean的方法小結

Spring在代碼中獲取bean的方法小結

2020-06-30 11:07daisy JAVA教程

在工作中有時候我們需要在非spring依賴注入或管理的類中獲取service、dao等bean對象,這時候用@Autowired和@Resource顯然是不行的,那么下面這篇文章就給大家了整理幾種獲取bean的方式,對大家的學習和工作具有一定的參考借鑒,下面來

一、通過Spring提供的ContextLoader

?
1
2
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
wac.getBean(beanID);

這種方式不依賴于servlet,不需要注入的方式。但是需要注意一點,在服務器啟動時,Spring容器初始化時,不能通過這種方法獲取Spring容器

二、實現接口ApplicationContextAware

定義工具類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public class SpringContextUtil implements ApplicationContextAware {
  private static ApplicationContext applicationContext;   //Spring應用上下文環境
 
  /**
   * 實現ApplicationContextAware接口的回調方法,設置上下文環境
   * @param applicationContext
   * @throws BeansException
   */
  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    SpringContextUtil.applicationContext = applicationContext;
  }
 
  /**
   * @return ApplicationContext
   */
  public static ApplicationContext getApplicationContext() {
    return applicationContext;
  }
 
  /**
   * 獲取對象
   * @param name
   * @return Object 一個以所給名字注冊的bean的實例
   * @throws BeansException
   */
  public static Object getBean(String name) throws BeansException {
    return applicationContext.getBean(name);
  }
 
  /**
   * 獲取類型為requiredType的對象
   * 如果bean不能被類型轉換,相應的異常將會被拋出(BeanNotOfRequiredTypeException)
   * @param name    bean注冊名
   * @param requiredType 返回對象類型
   * @return Object 返回requiredType類型對象
   * @throws BeansException
   */
  public static Object getBean(String name, Class requiredType) throws BeansException {
    return applicationContext.getBean(name, requiredType);
  }
 
  /**
   * 如果BeanFactory包含一個與所給名稱匹配的bean定義,則返回true
   * @param name
   * @return boolean
   */
  public static boolean containsBean(String name) {
    return applicationContext.containsBean(name);
  }
 
  /**
   * 判斷以給定名字注冊的bean定義是一個singleton還是一個prototype。
   * 如果與給定名字相應的bean定義沒有被找到,將會拋出一個異常(NoSuchBeanDefinitionException)
   * @param name
   * @return boolean
   * @throws NoSuchBeanDefinitionException
   */
  public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
    return applicationContext.isSingleton(name);
  }
 
  /**
   * @param name
   * @return Class 注冊對象的類型
   * @throws NoSuchBeanDefinitionException
   */
  public static Class getType(String name) throws NoSuchBeanDefinitionException {
    return applicationContext.getType(name);
  }
 
  /**
   * 如果給定的bean名字在bean定義中有別名,則返回這些別名
   * @param name
   * @return
   * @throws NoSuchBeanDefinitionException
   */
  public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
    return applicationContext.getAliases(name);
  }
}

三、配置bean

?
1
2
<!-- SpringContextUtil 通過代碼獲取bean -->
<bean id="SpringContextUtil " class="org.shaofan.demo.utils.SpringContextUtil"/>

總結

以上就是Spring在代碼中獲取bean的幾種方式,希望本文的內容對大家的學習或者工作能有所幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
577
主站蜘蛛池模板: 亚洲综合在线视频 | 久草成人| 久久精品一区二区三区四区 | 偷拍一区二区三区 | 中国女人真人一级毛片 | 亚洲精品国产精品国自产在线 | 欧美永久精品 | 久青草视频 | 国产高清精品在线 | 久久精品久久久久电影 | 免费自拍偷拍视频 | 精品三区 | 久久精品1区 | 性做久久久久久久免费看 | 久久人| 黄网站视频免费 | 黄色av电影| 国产精品视频网 | 亚洲一区免费在线观看 | 日韩不卡一区二区三区 | 国产精品密在线观看 | 夜夜操导航| 欧美亚洲综合久久 | 欧美成人综合在线 | 亚洲成人精品在线 | 成人av播放| 色婷婷综合久久 | 羞羞动漫网| 久久艹天天艹 | 成人在线免费观看 | 精品欧美乱码久久久久久1区2区 | 欧美精品一区二区三区四区 | 亚洲久草| 久久国产亚洲 | 国产高清精品在线 | 欧美另类国产 | 操av在线 | 可以在线观看的黄色 | 欧美一级黄 | www天天干 | 国产精品网站在线观看 |