`

web项目启动时进行数据的预加载(servlet获得spring的bean)

 
阅读更多

有些数据,变动量不大,大事使用比较频繁,所以想放在服务启动时,就讲数据加载到内存中,方便在程序中进行取用。

 

用到了一个简单的实现方法。新建一个servlet,在servlet的init()方法中,进行数据的加载。在web.xml中配置,servlet在启动时加载就行了。

具体实现如下:

 

servlet 代码:

 

 

public class InitData2MemServlet extends HttpServlet {

	private NodeManagerService nodeManagerService;
	
	@Override
	public void init() throws ServletException {
		super.init();
		WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
		nodeManagerService = (NodeManagerService)wac.getBean("nodeManagerService");
		nodeManagerService.getNode2Map(new HashMap<String, Object>(), SystemMem.nodeMap);
	}

}

 

web.xml 中配置 <load-on-startup>2</load-on-startup> 就可以了。

 

此处需要注意的就是在servlet中使用 spring的注解进行注入是无效的,原因servlet 和 spring管理的bean不在一个容器中。servlet是在webcontext容器中。而spring的bean是在Spring容器中。

 

所以此处通过下面这段代码,来获得spring容器中的bean。

 WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());

nodeManagerService = (NodeManagerService)wac.getBean("nodeManagerService");

 

 

分享到:
评论

相关推荐

    Spring在容器在启动的时候发生了什么

    在Spring框架中,当一个基于Servlet的Web应用启动时,Spring容器的初始化过程是至关重要的。这个过程涉及到多个组件和步骤,让我们详细探讨一下。 首先,我们在`web.xml`配置文件中看到了`&lt;context-param&gt;`和`...

    spring framework4.0.3,及项目搭建整合包

    在描述中提到的"项目搭建整合包"通常包含了一系列预配置好的文件和配置,帮助开发者快速启动一个新的Spring项目。这个包可能包括了Spring的jar包,web.xml配置文件,Spring的配置文件如applicationContext.xml,以及...

    web.xml加载顺序与web.xml常用节点解析

    - 当应用服务器启动并加载Web应用程序时,首先读取`web.xml`文件。 - 首先解析的是`&lt;context-param&gt;`节点,这些参数作为全局配置,被转换为`ServletContext`的初始化参数。 - 紧接着,应用服务器创建`...

    spring web flow 官方文档

    渲染动作是在视图渲染前执行的额外操作,如数据预加载、权限检查等。它们提高了视图渲染的效率和安全性。 #### 5.6 Binding to a model 数据绑定是将用户输入与数据模型关联的过程。Spring Web Flow提供了自动和...

    JSF与Spring完美结合

    4. **数据绑定和事件处理**:JSF的EL(Expression Language)可以用来访问Spring托管的Bean,进行数据绑定和调用方法。同时,JSF的事件处理机制也可以与Spring Bean中的方法相结合。 接下来,我们来看如何在Tomcat6...

    servlet包以及连接数据库的包

    - **加载与实例化**:当服务器启动或Servlet首次被请求时,Servlet容器(如Tomcat)加载Servlet类并创建其实例。 - **初始化**:Servlet实例化后,会调用`init()`方法进行初始化,可以在这里设置配置参数。 - **...

    Spring Boot面试题(92题)

    此外,Spring Boot的自动配置特性可以根据类路径中的类和jar包自动配置bean,例如,仅添加`spring-boot-starter-web`启动器就可以启用Web功能。它还摒弃了代码生成和XML配置,利用条件注解完成配置,这是Spring 4.x...

    spring-boot源码

    8. **Web MVC**:Spring Boot对Spring MVC进行了预配置,包括静态资源处理、错误页面配置、视图解析等。`WebMvcConfigurer`接口提供自定义MVC行为的机会。 9. **Data访问**:Spring Boot支持JPA、Hibernate、...

    spring boot 小实例

    例如,`spring-boot-starter-web` 启动器包含了一个 web 应用所需的基本组件,如 Tomcat 服务器和 Spring MVC。 2. **自动配置(Auto-configuration)**:Spring Boot 根据类路径中的存在来自动配置你的应用。例如...

    spring API英文版

    9. **Spring Boot**:作为Spring的简化启动器,Spring Boot简化了配置,提供了一系列预配置的Starter POMs,使得快速构建和运行Spring应用程序变得容易。 10. **Spring Cloud**:Spring Cloud是Spring的扩展,提供...

    Spring学习笔记.doc

    - **实现类**:`ClassPathXmlApplicationContext`是最常用的实现之一,它可以在启动时预加载所有的单例Bean。 #### 四、Bean的创建与管理 - **Bean的创建方式**: - **通过构造器直接创建**:直接指定Bean的类名...

    Spring MVC 配置请求的默认处理器.rar

    这里,`servlet-class`指定Servlet类,`contextConfigLocation`参数指定了Spring MVC的配置文件路径,`load-on-startup`设置Servlet加载的优先级。 3. **Spring MVC配置文件** `spring-mvc-config.xml`通常包含...

    spring xfire

    在web.xml中,除了设置XFire的servlet和servlet-mapping外,还要指定Spring配置文件的位置,这样Spring容器中的Bean就能被XFire识别并用于Web Service的实例化。此外,为了发布服务,我们需要在Spring配置文件中定义...

    spring源代码解析

    在第二部分,作者讨论了IoC容器在Web容器中的启动过程,如如何在Servlet环境下集成Spring,如使用WebApplicationContext,它是专门为Web应用设计的上下文实现,可以与Servlet容器紧密集成。 第三部分深入到了Spring...

    spring的ppt

    配置文件通常放在项目的\WEB-INF目录下,可以通过Web应用程序的监听器(ContextLoaderListener)或自启动Servlet(ContextLoaderServlet)来加载。 在Web应用程序中,Spring的WebApplicationContext是专门为Web环境...

    spring2.0 sample

    在`web.xml`中,`ContextLoaderListener`监听器用于启动Spring的ApplicationContext,这是Spring应用的核心,负责加载和管理Bean。`DispatcherServlet`则扮演着请求分发者的角色,将HTTP请求路由到合适的处理器。 ...

    Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码

    在"Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码"这个项目中,开发者可能已经包含了这些框架的配置文件,例如Spring的applicationContext.xml、SpringMVC的servlet-context.xml、Hibernate的hibernate....

    Spring Boot 3核心特性

    3. **简化部署方式**:Spring Boot应用可以直接打包成JAR文件进行部署,无需像传统Java Web应用那样打成WAR文件部署到应用服务器上,这极大地简化了部署流程,并且支持直接嵌入Tomcat、Jetty或Undertow等Servlet容器...

    spring security 参考手册中文版

    2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 Gradle存储库 23 使用Spring 4.0.x和Gradle 24 2.4.3项目模块 25 核心 - spring-security-core.jar 25 远程处理 - spring-...

    CXFSpringService项目 包含相关jar包

    3. 如果项目包含Spring配置,Tomcat会读取`WEB-INF/spring/appServlet/servlet-context.xml`等配置文件,启动Spring容器。 4. 确保所有依赖的jar包都在`WEB-INF/lib`目录下,否则Tomcat可能无法找到必要的类库。 5. ...

Global site tag (gtag.js) - Google Analytics