在 java EE 工程中,经常会用到定时任务Job、自定义servlet,在这些job、servlet中,也会用到在 spring 容器中声明的bean,如 service、dao等。
在 job、servlet 中,这些 bean 的获取如下所示:
1. 自定义spring加载器
这个加载器的作用就是把 ApplicationContext 装载到 SpringUtil 中。
import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import org.springframework.context.ApplicationContext; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.WebApplicationContextUtils; /** * @ClassName: SpringContextLoaderListener * @deprecated: 自定义spring加载器,把ApplicationContext装载到SpringUtil * @author * @company * @date 2014-5-15 * @version V1.0 */ public class SpringContextLoaderListener extends ContextLoaderListener { public void contextInitialized(ServletContextEvent event) { // 初始化父类 ContextLoaderListener super.contextInitialized(event); ServletContext context = event.getServletContext(); ApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(context); // 装载 SpringUtil 中的 ApplicationContext new SpringUtil().setApplicationContext(ctx); } }
2. 将 SpringContextLoaderListener 加入 web.xml
注释 org.springframework.web.context.ContextLoaderListener
添加 SpringContextLoaderListener
3. Spring工具类
这个类的作用就是获取在 spring 容器中声明的 bean
import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * @ClassName: SpringUtil * @deprecated: Spring工具类,提供取得Spring配置文件中定义的Bean的方法 * @author * @company * @date 2014-5-15 * @version V1.0 */ public class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { // 在 SpringContextLoaderListener 中调用此方法 SpringUtil.applicationContext = arg0; } public static Object getBean(String name) { // applicationContext 已在 SpringContextLoaderListener 中装载 return applicationContext.getBean(name); } }
4. 在 servlet 或者 job 中获取 spring 容器中声明的 bean
private HwSysParamsService hwSysParamsService; hwSysParamsService = (HwSysParamsService) SpringUtil .getBean("hwSysParamsService");
相关推荐
java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
java spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取bean...
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
创建SpringBean配置工具类(安全)如: <bean id=... scope="prototype"></bean>
1. Spring Boot工具类静态属性注入:使用@ConfigurationProperties注解将application.yml文件中的配置信息注入到Java类中。 2. 使用@Value注解将application.yml文件中的配置信息注入到Java类的成员变量中。 3. ...
1. **beans.xml**:这是Spring应用中最常见的配置文件,用于定义bean及其依赖关系。在这里,我们可以声明bean的类、属性、初始化方法、依赖注入等。 2. **applicationContext.xml**:此文件通常用于定义整个应用上...
本文将详细介绍Spring中获取ApplicationContext对象的工具类实现方法。 在Spring中,典型的获取ApplicationContext对象的方式是使用ApplicationContext接口的一个实现类,如ClassPathXmlApplicationContext。这是一...
在Spring框架中,配置文件通常包含了应用程序的重要信息,如数据库连接、bean的定义以及服务器的配置等。为了保护这些敏感信息不被非法访问或篡改,我们可以对Spring配置文件进行加密处理。本文将深入探讨如何在Java...
首先,我们需要在Spring的配置文件中引入Hibernate的相关bean,通常命名为`applicationContext.xml`。这个文件是Spring的IoC(Inversion of Control)容器的定义,它会管理所有bean的生命周期。 1. **Spring配置...
这样,Spring会自动将配置文件中的值注入到bean中。 7. **Spring Boot测试**: 在测试场景下,可以使用`@SpringBootTest`注解启动整个Spring Boot应用,然后使用`@Autowired`注入需要的bean进行测试。 8. **Bean...
而Spring的核心配置文件,通常命名为`applicationContext.xml`,是整个Spring应用的“心脏”,它定义了组件的生命周期、依赖关系以及服务的提供方式。本文将深入探讨Spring配置文件`applicationContext.xml`中的关键...
首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的实例化顺序取决于以下因素: 1. **定义顺序**:在XML配置中,如果Bean的定义顺序明确,那么按照它们在文件中的...
在这里,"myBean"是Bean的ID,"beans.xml"是配置文件,定义了Bean的配置。 2. **通过类型获取Bean** 如果你知道Bean的类型,可以使用`getBean(Class<T> requiredType)`方法,Spring会返回与给定类型匹配的第一个...
在大型项目中,Struts和Spring的配置文件是系统的核心,它们定义了各个组件如何协同工作。下面将详细讲解这两个框架的主要配置元素和它们在大型项目中的应用。 首先,Struts的配置文件通常命名为`struts-config.xml...
- `spring-core.jar`:Core支持,包括核心工具类和IoC容器基础。 - `spring-expression.jar`:Spring表达式语言(SpEL),用于运行时查询和操作对象模型。 - `spring-aop.jar`:AOP模块。 - `spring-web.jar` 和 `...
5. **工具类**:为了简化代码,有时我们会创建一个工具类,该类持有`ApplicationContext`的单例,提供获取bean的方法。例如: ```java public class SpringUtil { private static ApplicationContext context; ...
在描述中提到的"applicationContext.xml"就是ApplicationContext的配置文件,它是Spring应用的入口点,用于定义bean的定义和它们之间的依赖关系。 在Spring中,配置文件通常采用XML格式,但随着版本的升级,也支持...
3. `BeanDefinitionUtil`:这个工具类可能包含了对bean定义的处理逻辑,比如检查和修改bean的定义,以支持异步初始化。 4. `PlaceHolderAnnotationInvocationHandler`:这个名字暗示了它可能是一个动态代理的实现,...
在Spring框架中,Bean是核心概念,它代表了...综上所述,Spring中的Bean接口和注解为开发者提供了强大的工具,以实现灵活的依赖注入和对象管理。理解并熟练运用这些接口,能够使我们的代码更加简洁、高效,并易于维护。
此外,Spring的`@Configuration`和`@Bean`注解允许开发者在Java类中定义配置,这种编程式配置更灵活且易于维护。`@Configuration`类中的`@Bean`方法会被Spring容器调用来创建bean。 总的来说,Spring通过读取配置...