赵淑亭,校园春色小说区,张天爱撩头发放电
一 概述
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整合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论