Struts2+Spring2+Hibernate3配置(根据尚学堂马士兵老师的授课视频整理)
2015-01-28 11:51
387 查看
先配置Spring的application.xml:
1.扫描注解的base-package 和 设置为自动扫描
2.新建jdbc.properties,内容如下:
(AOP配置)
配置web.xml
1.声明需要加载spring的application.xml,同时若是application.xml要是没有放在
默认路径下的配置
<!-- 对Spring 容器进行实例化 -->
OpenSessionInView需要给参数sessionFactory传入值,所以要是application.xml中要是没把sessionFactory的id设置为
sessionFactory,那么就要在web.xml中配置OpenSessionInView时配置参数
OpenSessionInView拦截方法时,若没有在application.xml中配置事务,就认为事务是只读的,即不可去数据库更改数据
定义Struts 2的核心控制器 -->
需要注意的是,若是action那个Java文件要是不用交给spring注入的话,在action里面关于
各种变量的命名一定要和类名只差字母的大小写,如UserManager userManager;那么里面的各项变量会自行初始化,不需要spring容器注入,此时struts.xml中如此配置
<action name="u" class="com.wang.practise.action.UserAction">
如果action也想交给spring容器注入,那么在struts.xml的配置中要写成
<action name="u" class="u">此时不能忘掉在action的开头写上@Component("u")
@Scope("property")同时里面的变量要通过spring容器注入初始化,利用@Resource这种注解
1.扫描注解的base-package 和 设置为自动扫描
<context:component-scan base-package="com.wang.practise" /> <context:annotation-config />
2.新建jdbc.properties,内容如下:
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/practise jdbc.username=root jdbc.password=*****3.然后在application.xml中加载jdbc.properties中的配置
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:jdbc.properties</value> </property> </bean>4.配置dataSource
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>5.配置sessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="annotatedClasses"> <list> <value>com.wang.practise.model.User</value> </list> </property> <!-- <property name="annotatedPackages"> <list> <value>com.wang.practise</value> </list> </property> --> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.HSQLDialect </value> </property> </bean>6.配置HibernateTemplate
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean>7.事务声明
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>8.事务使用环境配置
(AOP配置)
<aop:config> <aop:pointcut expression="execution(* com.wang.practise.service..*.*(..))" id="pointcutpractise" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcutpractise" /> </aop:config>9.事务使用条件配置
<tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="add*" /> </tx:attributes> </tx:advice>
配置web.xml
1.声明需要加载spring的application.xml,同时若是application.xml要是没有放在
默认路径下的配置
<!-- 对Spring 容器进行实例化 -->
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <!-- default: /WEB-INF/applicationContext.xml --> </listener> <context-param> <param-name>contextConfigLocation</param-name> <!-- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> --> <param-value>classpath:beans.xml</param-value> </context-param>2.编码过滤器配置
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>3.OpenSessionInView的配置(为了应对代码里使用load懒加载导致session在把数据传输到jsp页面之前就关闭而设置,并且注意!!一定要配置在下一个struts过滤器前面:即下一项struts2的核心控制器)
<filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter>
OpenSessionInView需要给参数sessionFactory传入值,所以要是application.xml中要是没把sessionFactory的id设置为
sessionFactory,那么就要在web.xml中配置OpenSessionInView时配置参数
OpenSessionInView拦截方法时,若没有在application.xml中配置事务,就认为事务是只读的,即不可去数据库更改数据
<filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>4.<!--
定义Struts 2的核心控制器 -->
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
需要注意的是,若是action那个Java文件要是不用交给spring注入的话,在action里面关于
各种变量的命名一定要和类名只差字母的大小写,如UserManager userManager;那么里面的各项变量会自行初始化,不需要spring容器注入,此时struts.xml中如此配置
<action name="u" class="com.wang.practise.action.UserAction">
如果action也想交给spring容器注入,那么在struts.xml的配置中要写成
<action name="u" class="u">此时不能忘掉在action的开头写上@Component("u")
@Scope("property")同时里面的变量要通过spring容器注入初始化,利用@Resource这种注解
相关文章推荐
- 按照马士兵老师的视频讲解配置struts2之后写HelloStruts总是出现404错误
- 尚学堂科技.马士兵.JAVA.系列视频教程
- 根据红头发组播视频,整理的个人组播笔记(一)
- log4j.properties的配置详解(根据网络资料整理)
- 尚学堂马士兵老师oracle笔记
- myeclips/eclipse配置总结(根据网络整理)
- 中文名称:尚学堂科技.马士兵.JAVA.系列视频教程
- 韩顺平PHP学习视频笔记整理027apache服务器使用及配置② apache目录结构
- 【整理】波罗密多老师python视频
- 尚学堂马士兵Linux视频教程笔记
- 学习马士兵老师视频用的PPT(ssh)
- 尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程
- JAVA自学之路 [原创 - 尚学堂科技 - 马士兵老师]
- 根据红头发组播视频,整理的个人组播笔记(二)
- 尚学堂 马士兵 struts_2视频教程 笔记心得 1——30课详解
- JAVA自学之路 [原创 - 尚学堂科技 - 马士兵老师]
- 看尚学堂马士兵JSP的视频笔记
- 尚学堂马士兵老师oracle笔记
- 《尚学堂科技.马士兵.JAVA.系列视频教程10年2月9日更新(更新Spring3.0)》(java video courses)
- JAVA自学之路 来自尚学堂马士兵老师