首页 > 代码库 > 初学者的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>
View Code

 

 

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>
View Code

 

(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整合笔记