首页 > 代码库 > 初学者的SSH整合笔记
初学者的SSH整合笔记
最近开始学习SSH,对三大框架有一些初步了解后便着手写一个Demo把它们整合在一起。由于本人基本靠自学,在网上下载的视频中SSH的版本都与本人自己下载的版本不同,有些基本配置甚至某些类已经舍弃,使得我在调试Demo的过程中一直报出一些异常,很是费解。因而记下这篇笔记,方便以后查看,以后在学习的过程中也会慢慢补充。
本人用到的版本:struts-2.3.16.3 + Spring-4.0.4 + hibernate-4.3.5
web.xml的改动:
1.配置struts2的标签库<taglib>要放在<jsp:config>里,代码如下:
1 <!-- 配置struts2的标签库 -->2 <jsp-config>3 <taglib>4 <taglib-uri>/s</taglib-uri>5 <taglib-location>/WEB-INF/struts-tags.tld</taglib-location>6 </taglib>7 </jsp-config>
applicationContext.xml的改动:
1.Spring整合hibernate:
(1)无论用annotation还是xml配置,注入的sessionFactory同意用LocalSessionFactoryBean,代码如下:
1 <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 2 <property name="dataSource"> 3 <ref bean="dataSource"/> 4 </property> 5 <!-- 直接一个包扫描 --> 6 <property name="packagesToScan"> 7 <list> 8 <value>com.topview.model</value> 9 </list>10 </property>11 <!-- 一个类一个类的配12 <property name="annotatedClasses">13 <list>14 <value></value>15 </list>16 </property>17 -->18 <!-- 配置Hibernate的属性 -->19 <property name="hibernateProperties">20 <props>21 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>22 <prop key="hibernate.hbm2ddl.auto">update</prop>23 <prop key="hibernate.show_sql">true</prop>24 </props>25 </property>26 </bean>
(2)hibernate-4.3.5要用到Spring中org.springframework.orm.hibernate4下的类,代码如上。
(3)Spring-3.1之后便取消了HibernateTemplate,因为Hibernate4以后的事务管理已经做得很好了,不用Spring再扩展了。这个改变之后,session的获取是改用SessionFactory.getCurrentSession(),而不是openSession()。同时在xml配置文件中的propagation最好为REQUIRED,原因是getCurrentSession()在没有session的情况下不会自动创 建一个,因此最好的解决方案是使用REQUIRED的传播行为。
(4)Spring早已支持@Service,@Controll等注解,网络一些旧版本还一直统一使用@Component,在可以使用其他注解的情况下,还是不用@Component,原因如下:Spring或许以后会在其他这些annotation中定义出更多方法等。又例如@Repository有Spring支持的一些处理异常的方法,相比之下作用更加强大。
由于本人水平有限,目前了解到的改动仅有这些,在未来的学习中会慢慢补充。
参考链接:http://blog.csdn.net/gyflyx/article/details/7632645
http://blog.csdn.net/yangchaofeng1229/article/details/7937734
初学者的SSH整合笔记