Spring与Web整合实例
程序员文章站
2024-02-12 12:33:16
一 概述
1.整合目的
将所有对象的创建与管理任务交给spring容器,降低程序的耦合度。
2.整合途径
将spring容器注入到web容器中。
3.具体实现...
一 概述
1.整合目的
将所有对象的创建与管理任务交给spring容器,降低程序的耦合度。
2.整合途径
将spring容器注入到web容器中。
3.具体实现
使用servletcontextlistener监听servletcontext,当servletcontexxt创建时同时创建spring容器,并将创建完成的容器放到servletcontext即application中,在web中获取spring容器,就可以访问对象了。contextloadlistener是servletcontextlistener的一个实现类,配置:
<listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener>
默认情况下,spring的配置文件只能放在web-inf目录下,名称为applicationcontext.xml,可以在web.xml文件中修改,将配置文件放在src目录下:
<context-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:xxxx.xml</param-value> </context>
4.获取spring容器
webapplicationcontext context=webapplicationcontextutils.getrequiredwebapplicationcontext(getservletcontext());
二 延时加载问题
1.原因
视图层调用service的方法从数据库中加载对象,如果dao实现层采用了延时加载,返回一个包含null对象的代理,在视图层访问对象的详情时,service层已经执行完毕,事务已关闭,对象为空,就无法获取对象的详情。
2.解决方法
将session与请求线程绑定,允许在事务关闭以后完成延时加载任务。
3.具体实现
在web.xml中配置:
<filter> <filter-name>opensessioninviewfilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.opensessioninviewfilter</filter-class> </filter> <filter-mapping> <filter-name>opernsessioninviewfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
以上这篇spring与web整合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
Spring与Web整合实例
-
Spring Boot和Kotlin的无缝整合与完美交融
-
Dubbo与SpringBoot整合流程(从实例入手,附代码下载)
-
web前端入门之html+css实例④之浮动(float与inline-block)
-
MyBatis 与 Spring 整合
-
Dwz与thinkphp整合下的数据导出到Excel实例
-
Spring整合Struts2中拦截链与注解的使用
-
RocketMQ最佳实践(三)开发spring-boot-starter-rocketmq实现与spring boot项目的整合
-
Linux下Tomcat与Apache Web服务器的整合
-
java中Memcached的使用实例(包括与Spring整合)