程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java類獲得Spring中bean的5種方法

Java類獲得Spring中bean的5種方法

編輯:關於JAVA

Java類獲得Spring中bean的5種方法。本站提示廣大學習愛好者:(Java類獲得Spring中bean的5種方法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java類獲得Spring中bean的5種方法正文


獲得Spring中的bean有許多種方法,再次總結一下:
第一種:在初始化時保留ApplicationContext對象

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");

解釋:這類方法實用於采取Spring框架的自力運用法式,須要法式經由過程設置裝備擺設文件手工初始化Spring。
第二種:經由過程Spring供給的對象類獲得ApplicationContext對象

import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");

解釋:
1、這兩種方法合適於采取Spring框架的B/S體系,經由過程ServletContext對象獲得ApplicationContext對象,然後在經由過程它獲得須要的類實例;
2、第一種方法在獲得掉敗時拋出異常,第二種方法前往null。
第三種:繼續自籠統類ApplicationObjectSupport

解釋:經由過程籠統類ApplicationObjectSupport供給的getApplicationContext()辦法可以便利的獲得到ApplicationContext實例,進而獲得Spring容器中的bean。Spring初始化時,會經由過程該籠統類的setApplicationContext(ApplicationContext context)辦法將ApplicationContext 對象注入。
第四種:繼續自籠統類WebApplicationObjectSupport

解釋:和下面辦法相似,經由過程挪用getWebApplicationContext()獲得WebApplicationContext實例;
第五種:完成接口ApplicationContextAware

解釋:完成該接口的setApplicationContext(ApplicationContext context)辦法,並保留ApplicationContext對象。Spring初始化時,會經由過程該辦法將ApplicationContext對象注入。

固然Spring供給了後三種辦法可以完成在通俗的類中繼續或完成響應的類或接口來獲得Spring的ApplicationContext對象,然則在應用時必定要留意繼續或完成這些籠統類或接口的通俗java類必定要在Spring的設置裝備擺設文件(即application-context.xml文件)中停止設置裝備擺設,不然獲得的ApplicationContext對象將為null。

上面經由過程完成接口ApplicationContextAware的方法演示若何獲得Spring容器中的bean:
起首自界說一個完成了ApplicationContextAware接口的類,完成外面的辦法:

package com.ghj.tool;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringConfigTool implements ApplicationContextAware {// extends ApplicationObjectSupport{

 private static ApplicationContext ac = null;
 private static SpringConfigTool springConfigTool = null;

 public synchronized static SpringConfigTool init() {
 if (springConfigTool == null) {
  springConfigTool = new SpringConfigTool();
 }
 return springConfigTool;
 }

 public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
 ac = applicationContext;
 }

 public synchronized static Object getBean(String beanName) {
 return ac.getBean(beanName);
 }
}

其次在applicationContext.xml文件停止設置裝備擺設:
<bean id="SpringConfigTool" class="com.ghj.tool.SpringConfigTool"/>
最初經由過程以下代碼便可以獲得到Spring容器中響應的bean了:
SpringConfigTool.getBean("beanId");
留意一點,在辦事器啟動Spring容器初始化時,不克不及經由過程以下辦法獲得Spring容器:

import org.springframework.web.context.ContextLoader; 
import org.springframework.web.context.WebApplicationContext; 
 
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); 
wac.getBean(beanID);

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved