Spring - 獲取ApplicationContext的幾種方式
一、在Spirng容器初始化時儲存ApplicationContext物件
1、通過ClassPathXmlApplicationContext載入,預設獲取的是classes即原始碼路徑下的配置檔案
import org.springframework.context.support.ClassPathXmlApplicationContext;
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:/context-*.xml");
2、通過FileSystemXmlApplicationContext載入,預設獲取的是專案根路徑下的配置檔案
import org.springframework.context.support.FileSystemXmlApplicationContext;
ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");
ApplicationContext context = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext*.xml");
注:該方式適用於採用Spring框架的需要通過配置檔案手工初始化Spring的獨立應用程式
二、通過WebApplicationContextUtils獲取ApplicationContext物件
1、servlet
import javax.servlet.http.HttpServlet;
ServletContext servletContext = httpServletRequest.getSession().getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
2、struts2
import org.apache.struts2.ServletActionContext;
ServletContext application = ServletActionContext.getRequest().getSession().getServletContext();
pplicationContext context = WebApplicationContextUtils.getWebApplicationContext(application);
注、該方式適合於採用Spring框架的B/S系統,通過ServletContext物件獲取ApplicationContext物件
三、通過繼承*Support和實現*Aware獲取ApplicationContext物件
1、繼承自抽象類ApplicationObjectSupport
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ApplicationObjectSupport;
public class SpringContextUtils extends ApplicationObjectSupport{
public ApplicationContext getContext(){
return super.getApplicationContext();
}
}
2、繼承自抽象類WebApplicationObjectSupport
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationObjectSupport;
public class SpringContextUtils extends WebApplicationObjectSupport{
public ApplicationContext getContext(){
return super.getWebApplicationContext();
}
}
3、實現介面ApplicationContextAware
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringContextUtils implements ApplicationContextAware{
private ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.context = applicationContext;
}
}
注、以上繼承和實現方式,需要在Spring的配置檔案中進行配置
<bean id="SpringContextUtils" class="com.xl.utils.SpringContextUtils"/>
四、通過ContextLoader獲取ApplicationContext物件
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.ContextLoader;
ApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
注、該方式不依賴於servlet,不需要注入的方式;但在伺服器啟動Spring容器初始化時,不能使用該方法獲取Spring容器
相關文章
- Spring在程式碼中獲取bean的幾種方式SpringBean
- PG獲取檔案大小的幾種方式
- 獲取或操作DOM元素特性的幾種方式
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- Spring6 當中 獲取 Bean 的四種方式SpringBean
- 獲取Java執行緒返回值的幾種方式Java執行緒
- Spring注入Bean的幾種方式SpringBean
- js獲取數字陣列最大值的幾種方式JS陣列
- 在Spring boot中通過ApplicationContext獲取bean失敗Spring BootAPPContextBean
- spring-boot-route(二)讀取配置檔案的幾種方式Springboot
- spring註冊bean的幾種方式SpringBean
- SpringBoot 使用ApplicationContext 及 getbean的兩種方式Spring BootAPPContextBean
- php讀取檔案的幾種方式PHP
- Java獲取Spring的各種物件JavaSpring物件
- IOS 自動化,幾種特殊情況下 UI 元素獲取的方式iOSUI
- SpringBoot讀取配置資料的幾種方式Spring Boot
- android獲取控制元件的幾種方法Android控制元件
- 大資料量獲取TopK的幾種方案大資料TopK
- Java中獲取Class物件的三種方式Java物件
- SpringBoot獲取HttpServletRequest的3種方式總結Spring BootHTTPServlet
- Asp.Net MVC控制器獲取檢視傳值幾種方式ASP.NETMVC
- Spring Security(四):更新前端路由獲取方式Spring前端路由
- Spring boot 讀取properties檔案的四種方式Spring Boot
- Spring Boot 讀取配置內容的三種方式Spring Boot
- Spring Boot中初始化資源的幾種方式Spring Boot
- Spring Boot 入門系列(二十五)讀取配置檔案的幾種方式詳解!Spring Boot
- spring boot學習(7)— 配置資訊的獲取方式Spring Boot
- spring的BeanFactory和ApplicationContextSpringBeanAPPContext
- Spring Boot EL獲取配置檔案中的值的方式Spring Boot
- Spring之ApplicationContextSpringAPPContext
- spring-boot-route(一)Controller接收引數的幾種方式SpringbootController
- 你應該知道的幾種Spring boot非同步呼叫方式Spring Boot非同步
- 使用快取(Cache)的幾種方式,回顧一下~~~快取
- 直播系統原始碼,MAP的幾種取資料的方式原始碼
- css引入的幾種方式CSS
- Unity反射的幾種方式Unity反射
- Groovy獲取Bean兩種方式(奇淫技巧操作)Bean
- Spring BeanFactory和ApplicationContextSpringBeanAPPContext