在專案中獲取Spring的Bean的幾種方式
1. 方式一 通過Spring提供的工具類獲取ApplicationContext物件
org.springframework.context.ApplicationContext ac2 = org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
Person Person= (Person) ac2.getBean("Person");
Person.printStr();
這個方式,我們最主要是得到 javax.servlet.ServletContext 物件
如果這個物件在servlet 環境中當然很好得,如果不是的,那我就需要創造這個環境,java B/S專案,只有在web容器中
我們就有辦法做到 :
看下面的:
我需要在spring的bean中直接獲取,這下可和我們常規的操作有些不同,因為spring的bean都是pojo的。根本見不著servletconfig和servletcontext的影子。
這裡我需要指出spring給我們提供了兩個介面:org.springframework.web.context.ServletContextAware和
org.springframework.web.context.ServletConfigAware。我們可以讓我們的bean實現上邊的任何一個介面就能獲取到servletContext了 .
程式碼如下:
public class DicBean implements ServletContextAware{
private ServletContext servletContext;
public void setServletContext(ServletContext sc) {
this.servletContext=sc;
System.out.println("專案的絕對路徑為:"+servletContext.getRealPath("/"));
}
}
如果在struts2的action中,我們也可以用下面的:
javax.servlet.ServletContext servletContext = org.apache.struts2.ServletActionContext.getServletContext();
2.方式二 很直接
//以
org.springframework.core.io.ClassPathResource isr = new ClassPathResource("applicationContext.xml");
XmlBeanFactory factory = new XmlBeanFactory(isr);
Person Person= (Person) factory.getBean("Person");
Person.printStr();
3.試下
在初始化時儲存ApplicationContext物件
程式碼:
ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContext.xml");
ac.getBean("beanId");
說明:
這種方式適用於採用Spring框架的獨立應用程式,需要程式通過配置檔案手工初始化Spring的情況。
相關文章
- Spring在程式碼中獲取bean的幾種方式SpringBean
- Spring6 當中 獲取 Bean 的四種方式SpringBean
- Spring注入Bean的幾種方式SpringBean
- 在SpringMVC中獲取request物件的幾種方式SpringMVC物件
- spring註冊bean的幾種方式SpringBean
- Spring - 獲取ApplicationContext的幾種方式SpringAPPContext
- PG獲取檔案大小的幾種方式
- Spring中bean的四種注入方式SpringBean
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- javascript獲取url地址的幾種方式JavaScript
- servlet中手動獲取spring的beanServletSpringBean
- AngularJS中獲取資料來源的幾種方式AngularJS
- 獲取spring裡的beanSpringBean
- Java類獲取spring 容器的bean的5種方法JavaSpringBean
- php讀取檔案的幾種方式PHP
- 獲取或操作DOM元素特性的幾種方式
- Spring Boot EL獲取配置檔案中的值的方式Spring Boot
- spring-boot-route(二)讀取配置檔案的幾種方式Springboot
- Groovy獲取Bean兩種方式(奇淫技巧操作)Bean
- spring注入bean的幾種策略模式SpringBean模式
- Spring Bean的3種裝配方式SpringBean
- js獲取頁面dom元素的幾種常用方式JS
- Java中獲取Class物件的三種方式Java物件
- 在 NetBeans 中打包 Maven 專案的兩種方式BeanMaven
- spring bean別名的兩種配置方式SpringBean
- 獲取Java執行緒返回值的幾種方式Java執行緒
- 在Spring boot中通過ApplicationContext獲取bean失敗Spring BootAPPContextBean
- Spring原始碼剖析4:其餘方式獲取Bean的過程分析Spring原始碼Bean
- 反射-獲取class檔案物件的三種方式反射物件
- 獲取cookie的3種方式Cookie
- 在 .NET 中建立物件的幾種方式的對比物件
- 【JavaEE】讀取配置檔案路徑的幾種方式Java
- js獲取數字陣列最大值的幾種方式JS陣列
- 通過spring,在專案的任意位置獲取當前RequestSpring
- 獲取WebLogic版本號有以下幾種方式Web
- Spring Boot 專案鑑權的 4 種方式Spring Boot
- Spring boot 讀取properties檔案的四種方式Spring Boot
- C#中獲取當前路徑的幾種方法C#