在用ssh框架做开发的时候,通常我们可以利用多种方式加载初始化applicationContext配置文件,例如:
1.可以用spring集成struts,在web.xml中配置一个listener加载配置文件
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
ContextLoaderListener初始化spring配置,然后把它放在ServletContext对象里边保存:
代码:
servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,this.context);
注意:保存的对象的key是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE!
2.用struts集成spring,在struts配置struts-config.xml中通过ContextLoaderPluigIn来初始化spring配置信息
ContextLoaderPlugIn 初始化spring配置,然后把它放在ServletContext对象里边保存:
代码:
String attrName = getServletContextAttributeName();
getServletContext().setAttribute(attrName,wac);
注意:保存的对象的key是attrName,这个attrName和WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE名字是不一样的。
3.在使用openSessionInView的时候,他会在每次请求到来时在web上下文中查找sessionFactory,就是说他会在spring配置文件中查找sessionFactory,它是按照WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE这个key去取spring配置的。
整理一下,ContextLoaderPlugIn 保存spring配置的名字叫做attrName,ContextLoaderListener保存spring配置的名字叫做WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE;而OpenSessionInView是按照WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE这个名字去取得sping配置的。
所以:当使用hibernate延迟加载的时候,最好使用ContextLoaderListener初始化spring配置文件。
分享到:
相关推荐
整合SSH框架时,正确配置这两个文件至关重要,它们不仅影响到Spring框架的正常工作,也关乎到应用的日志记录和问题排查。开发者需要根据实际项目需求,灵活调整配置,以达到最佳性能和可维护性。
在Spring框架中,Bean的创建方式多样,其中两种常见的非XML配置方式是通过静态工厂方法和实例工厂方法来创建Bean。这些方法为Spring容器提供了更灵活的Bean实例化策略,让我们深入了解一下这两种方法。 首先,静态...
2. **ContextLoaderListener**:这个监听器负责初始化Spring的ApplicationContext,从`/WEB-INF`目录下的`applicationContext.xml`加载配置信息。如果`applicationContext.xml`不在默认位置或有自定义名称,需要通过...
SSM和SSH是Java开发中常见的两种框架集成方式。SSM指的是Spring、SpringMVC和MyBatis的组合,而SSH则是Spring、Struts2和Hibernate的集成。这两种框架都是为了简化企业级应用的开发,提供模型-视图-控制器(MVC)...
在这个笔记中,我们将深入探讨如何在Web应用环境下使用Spring框架,特别是通过两种不同的方法:配置监听器类和调用HttpServlet类,以及配置ContextLoaderListener。 首先,Spring框架在Web应用中的主要作用是提供...
另一种方式是通过Spring的TaskExecutor或TaskScheduler接口,以及对应的XML配置,来调度任务。`springContext-timer.xml`文件可能包含了这些定时任务的配置,定义了任务的执行周期、启动时间等参数。 在描述中提到...
- `initialPoolSize`: 初始化连接池大小。 - `minPoolSize`: 最小连接池大小。 - `maxPoolSize`: 最大连接池大小。 - `maxIdleTime`: 最大空闲时间。 - `acquireIncrement`: 增量获取连接数量。 - `...
在提供的“SSH笔记-依赖、继承bean的配置”中,我们将重点讨论两种在XML配置中处理依赖和bean继承的方法:`parent`属性和`depends-on`属性。 首先,`parent`属性用于定义bean的继承关系。在Spring中,一个bean可以...
我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...
9. **配置文件的语法**:Log4j支持XML和属性文件两种配置方式。根Logger的配置如`log4j.rootLogger = [level], appenderName, appenderName, …`,其中`level`是日志级别,`appenderName`指的是日志输出的目的地,...
- **Servlet配置**:定义了Struts ActionServlet的初始化参数,包括Struts配置文件的位置。 - **Servlet Mapping**:将所有的.do请求映射到ActionServlet。 - **Context Param**:指定了Spring配置文件的位置,用于...
Spring支持运行时织入和编译时织入两种方式。运行时织入通常通过动态代理实现,而编译时织入则需要使用如AspectJ这样的编译工具。 **5. Spring AOP的应用场景** - **事务管理**:Spring AOP可以方便地实现声明式...
### Spring框架登录初始化数据与Struts2权限设置等相关知识 #### 一、数据库操作 **1. 对象作为WHERE条件** 在使用SSH框架时,经常需要根据对象的属性来进行数据库查询,特别是在分页操作中。这里涉及到的关键...
#### 三、Spring IoC容器创建SessionFactory的两种方式 1. **通过Java配置:** - 使用纯Java代码来配置Spring IoC容器和Hibernate的SessionFactory。 - 这种方式更为灵活,也更容易理解和维护。 2. **通过XML...
### 第二种方式:Action 初始化交给Spring 在第二种整合方式中,Action的初始化完全交给Spring,依赖注入也由Spring处理。Action需要使用`@Component`注解,生命周期设定为`prototype`,同时在`struts.xml`中配置的...
- **Spring管理jbpm**: 通过Spring的bean定义,可以实现jbpm工作流引擎的初始化和管理,如SessionFactory、ProcessEngine等,这样可以使jbpm的生命周期与Spring应用上下文同步。 - **依赖注入**: Spring的DI...
这两种方式都可以确保在对象创建完成后立即执行特定的操作。 - **销毁**:同样地,Spring支持通过`destroy-method`属性指定销毁方法,也可以通过实现`DisposableBean`接口并覆盖`destroy()`方法来实现。这对于释放...
总结来说,这个SSH配置文件的总结主要关注了字符编码的处理、Spring应用上下文的初始化以及Struts框架的配置,这些都是构建Java Web应用的关键步骤。这些配置确保了Web应用的正常运行,处理了字符编码问题,实现了...
在SSH整合中,Spring作为上下文容器,配置了其他两个框架的bean,并控制它们的初始化和销毁。 其次,SpringMVC是Spring框架的一个模块,专门用于处理Web应用的模型-视图-控制器(Model-View-Controller,MVC)架构...