1.创建一个类并让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.
示例代码:
view plaincopy to clipboardprint? import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public class MyApplicationContextUtil implements ApplicationContextAware { private static ApplicationContext context;//声明一个静态变量保存 @Override public void setApplicationContext(ApplicationContext contex) throws BeansException { this.context=contex; } public static ApplicationContext getContext(){ return context; } |
2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.
例:
<!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性--> <bean class="org.ing.springutil.MyApplicationContextUtil"></bean> |
3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.
4.在java中获得applicationContext引用:
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ApplicationListener implements ServletContextListener {
private static final Log log = LogFactory.getLog(ApplicationListener.class);
public void contextDestroyed(ServletContextEvent arg0) {
}
public void contextInitialized(ServletContextEvent evt) {
System.setProperty("user.timezone", "GMT+0800");// 服务器的时区应该是可以配置的
// TimeZone.setDefault(TimeZone.getTimeZone("GMT+0800")); //这个真TMD奇怪
ServletContext sc = evt.getServletContext();
//获取spring上下文
ServletContext context = evt.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
System.out.println("在这里向java类中传递ctx参数,可以在这里初始化,启动别的服务");
evt.getServletContext().setAttribute("test",2);
}
}
在web.xml中配置如下:
<listener>
<listener-class>
com.listener.ApplicationListener
</listener-class>
</listener>
分享到:
相关推荐
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢...下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class...测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。
主要为大家详细介绍了Java类获取Spring中bean的5种方式,感兴趣的小伙伴们可以参考一下
spring bean 的生命周期,把运行结果的日志,用sublime打开对比查看,你会有比较清晰的认识
本篇文章主要介绍了Spring 中如何控制2个bean中的初始化顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
spring动态向容器中添加bean和删除指定bean,不需要重启应用
NULL 博文链接:https://412887952-qq-com.iteye.com/blog/1479445
SIA实战(二):不用XML,使用java类配置Bean 工程源码
IOC之基于Java类的配置Bean ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45100657
3、通过spring的xml bean配置或bean注解指定初始化方法,如下面实例的initMethod方法通过@bean注解指定。 销毁的时候实现的方法 1、通过java提供的@PreDestroy注释; 2、通过实现spring提供的DisposableBean接口,并...
NULL 博文链接:https://xieke90.iteye.com/blog/2234803
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...
java中获得spring中的BEAN,
本篇文章是对在Java中如何获取Spring中配置的bean进行了详细的分析介绍,需要的朋友参考下
Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。org.springframework.beans包中包括了这些核心...
spring 重新动态加载数据库或xml中的bean,可以不用重启tomcat
Spring的Bean配置Spring的Bean配置说明说明
介绍了Java获取Bean容器的几种常见调用方式,其中详细写出了如何实现ApplicationContextAware 接口来获取Bean容器的工具类
以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. 在配置文件中注入<bean class="xxx.xxx.SpringContextHolder" lazy-init="false" /> 即可使用
初始化后可访问Spring管理的Bean