Spring +Struts

近期学习总结:

一农(412792674)  18:35:08
今天讲了ssh整合的内容,布置了练习题目,总结了我们学习的历程,这里把这个历程简单文字化一下

1、我们最开始做了一个servlet+jsp的猜数字游戏
2、引入jdbc后使用servlet+jsp+jdbc做了增删改查
   这个时候,我们需要自己调用request.getParameter("xxx")获取浏览器传来的参数值,自己调用user.setUsrename方法把参数值注入user对象,需要自己拼构sql语句执行插入更新等,需要自己生成Connection对象,创建statment,执行sql,处理ResultSet关闭session等。
3、然后我们引入了struts2,struts2的mvc模式使得我们的程序更有层次,更清晰些,也灵活一些。另外使用struts2的自动赋值的特性,省去了request.getParameter,然后在user.setXXX,以及类型转换的机械劳动。
4、然后我们引入hibernate,重写了UserDao,省去了拼凑sql的工作,但还需要自己管理session,而且管理的方式很有局限性
5、后来我们引入spring来当作对象工厂,负责对象的生成,但这时还只是简单的把构造以及赋值的操作,从代码变为配置而已。
6、现在我们在web.xml添加了spring的监听器,来自动产生ApplicationContext对象,引入struts2-spring-plugin,让struts2和spring配合,自动将我们在spring的配置文件里声明的UserDao注入到action里,还在web.xml里配置了OpenSessionInViewFilter,并让UserDao继承HibernateDaoSupport,来进一步简化UserDao的内容,而且还增强了其功能。

到此,struts2,hibenate,spring的简单整合就完成了。和最初的servlet+jsp+jdbc相比,代码少了一半还多,功能强了,逻辑清晰了,但配置多了,如果只是做一个CRUD,效果还不足够明显,如果做一个模块很多的项目,ssh整合的优势就更加突出了。
待后面进一步整合,并添加一些基础类后,使用泛型,预定优先等代码将更加简洁。


对ssh整合的配置进行总结:
Web_xml中的配置
此部分是对sping配置进行读取生成一个application对象。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
            classpath:/applicationContext*.xml
        </param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
AppilicationContext.xml中的配置
1. 配置数据源
  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
    </bean>
   
<!-- 数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<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>

2. 配置crud依赖的类
  
<bean id="namingStrategy"
class="org.hibernate.cfg.ImprovedNamingStrategy">
</bean>
<!-- 定义一个sessionFactory -->
<!-- org.springframework.orm.hibernate3.LocalSessionFactoryBean -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="namingStrategy" ref="namingStrategy" />
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.yuqiao.qiu.dao.User</value>
<!-- <value>com.yuqiaotech.simplejee.auth.model.Group</value>-->
<!-- <value>com.yuqiaotech.simplejee.forum.model.Forum</value>-->
</list>
</property>

3. 配置生成crud的实例的配置
<!-- 事务管理 -->

   
    <bean id="crud" class="com.yuqiao.qiu.dao.Crud">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
4. 自动建表的配置
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!--
-->
</props>
</property>
























你可能感兴趣的:(spring,Hibernate,struts,配置管理,ssh)