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
- 在專案中獲取Spring的Bean的幾種方式SpringBean
- javascript獲取url地址的幾種方式JavaScript
- PG獲取檔案大小的幾種方式
- 獲取或操作DOM元素特性的幾種方式
- js獲取頁面dom元素的幾種常用方式JS
- 在SpringMVC中獲取request物件的幾種方式SpringMVC物件
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- 獲取WebLogic版本號有以下幾種方式Web
- 獲取Java執行緒返回值的幾種方式Java執行緒
- AngularJS中獲取資料來源的幾種方式AngularJS
- Spring6 當中 獲取 Bean 的四種方式SpringBean
- 獲取cookie的3種方式Cookie
- Spring注入Bean的幾種方式SpringBean
- js獲取數字陣列最大值的幾種方式JS陣列
- 【方法整理】Oracle 獲取trace跟蹤檔名的幾種常用方式Oracle
- spring-boot-route(二)讀取配置檔案的幾種方式Springboot
- spring註冊bean的幾種方式SpringBean
- php讀取檔案的幾種方式PHP
- IOS 自動化,幾種特殊情況下 UI 元素獲取的方式iOSUI
- Java獲取Spring的各種物件JavaSpring物件
- 在Spring boot中通過ApplicationContext獲取bean失敗Spring BootAPPContextBean
- 大資料量獲取TopK的幾種方案大資料TopK
- java獲取當前路徑的幾種方法Java
- Android 獲得View寬高的幾種方式AndroidView
- Java中獲取Class物件的三種方式Java物件
- spring- properties 讀取的五種方式Spring
- Asp.Net MVC控制器獲取檢視傳值幾種方式ASP.NETMVC
- android獲取控制元件的幾種方法Android控制元件
- 關於java獲取本地ip的幾種方法Java
- Oracle 獲取執行計劃的幾種方法Oracle
- VB6 獲取CPUID的幾種方法UI
- 反射-獲取class檔案物件的三種方式反射物件
- Spring ApplicationContext講解與獲得SpringAPPContext
- Spring連線資料庫的幾種常用的方式Spring資料庫
- SpringBoot讀取配置資料的幾種方式Spring Boot
- 【JavaEE】讀取配置檔案路徑的幾種方式Java
- Spring Security(四):更新前端路由獲取方式Spring前端路由