SSH小项目整合的简单记录

第一步、导入sprint4、struts2和hibernate4的jar包

struts2的jar包

commons-fileupload-1.3.3.jar
commons-io-2.5.jar
commons-lang3-3.6.jar
freemarker-2.3.26-incubating.jar
javassist-3.20.0-GA.jar
log4j-api-2.10.0.jar
ognl-3.1.15.jar
struts2-core-2.5.17.jar
struts2-spring-plugin-2.5.17.jar(和spring4整合使用)

hibernate5的jar包

antlr-2.7.7.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1.jar
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-5.0.7.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-2.0.0.Final.jar
javassist-3.18.1-GA.jar
jboss-logging-3.3.0.Final.jar

spring4的jar包

spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
spring-jdbc-4.0.0.RELEASE.jar
spring-tx-4.0.0.RELEASE.jar
spring-web-4.0.0.RELEASE.jar

第二步、配置web.xml配置文件

<!-- 配置struts2的过滤器-->
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- 设置spring的配置文件的位置-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

	<!-- 设置spring4的监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

第三步、配置spring的struts2的配置文件

spring配置文件applicationContext.xml

<!-- 定义数据源,这里使用的jdbc。也可以使用c3p0等连接池 -->
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql:///blog"></property>
    <property name="username" value="root"></property>
    <property name="password" value="1234"></property>
  </bean>

  <!-- 配置hibernate5 的 sessionFactory,交由spring来管理。不用在程序里自己new -->
  <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref bean="dataSource" />
    </property>
    
    <!-- 配置hibernate相关属性 -->
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.format_sql">true</prop>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
      </props>
    </property>

    <!-- 配置关联关系映射文件 的方式之一 -->
    <property name="mappingResources">
      <list>
        <value>com/tzblog/bean/Album.hbm.xml</value>
        <value>com/tzblog/bean/Article.hbm.xml</value>
        <value>com/tzblog/bean/Critique.hbm.xml</value>
        <value>com/tzblog/bean/Me.hbm.xml</value>
        <value>com/tzblog/bean/Photo.hbm.xml</value>
      </list>
    </property>
  </bean>

  <!-- 配置事务管理器 -->
  <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
  </bean>

<!-- struts2 的 Action 交由 spring来管理,在struts.xml中的action的class里填写bean id -->
  <bean id="IndexAction" class="com.tzblog.action.IndexAction">
    <property name="articleDAO" ref="articleDAO" />
    <property name="critiqueDAO" ref="critiqueDAO"/>
  </bean>
  <bean id="AlbumAction" class="com.tzblog.action.AlbumAction">
    <property name="albumService" ref="albumService" />
  </bean>
  <bean id="ArticleAction" class="com.tzblog.action.ArticleAction">
  </bean>
  <bean id="MeAction" class="com.tzblog.action.MeAction">
    <property name="meService" ref="meService" />
  </bean>
  <bean id="CritiqueAction" class="com.tzblog.action.CritiqueAction">
    <property name="critiqueService" ref="critiqueService" />
  </bean>
  
<!-- Service -->
  <bean id="albumService" class="com.tzblog.service.AlbumService"></bean>
  <bean id="meService" class="com.tzblog.service.MeService">
    <!-- meService要用的对象,下面的一样 -->
    <property name="meDAO" ref="meDAO"/>
  </bean>
  <bean id="critiqueService" class="com.tzblog.service.CritiqueService"></bean>

<!-- DAO -->  
  <bean id="albumDAO" class="com.tzblog.dao.AlbumDAO">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="articleDAO" class="com.tzblog.dao.ArticleDAO">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="critiqueDAO" class="com.tzblog.dao.CritiqueDAO">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="meDAO" class="com.tzblog.dao.MeDAO">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="photoDAO" class="com.tzblog.dao.PhotoDAO"/>

struts2的配置文件struts.xml

  <!-- 开启开发模式,在不使用spring的时候可以自动热部署-->
  <constant name="struts.devMode" value="true">
<!-- strict-method-invocation="false" 的作用是允许使用通配符 -->
  <package name="article" namespace="/" extends="struts-default" strict-method-invocation="false">
    <action name="article_*" class="ArticleAction" method="{1}">
      <result name="success">/WEB-INF/jsp/article.jsp</result>
      <result name="detail">/WEB-INF/jsp/article_detail.jsp</result>
    </action>

    <action name="index" class="IndexAction">
      <result name="success">/WEB-INF/jsp/index.jsp</result>
    </action>

    <action name="about" class="MeAction">
      <result>/WEB-INF/jsp/aboutMe.jsp</result>
    </action>

    <action name="album_*" class="AlbumAction" method="{1}">
      <result>/WEB-INF/jsp/album.jsp</result>
      <result name="input">/WEB-INF/jsp/album_detail.jsp</result>
    </action>

    <action name="critique_*" class="CritiqueAction" method="{1}">
      <result>/WEB-INF/jsp/critique.jsp</result>
      <result name="input" type="redirectAction">critique</result>
    </action>
  </package>

hibernate的配置文件

因为已经交由spring来管理hibernate,所有不再需要hibernate.cfg.xml文件。但是还是需要hibernate关系映射文件。

posted @ 2018-08-28 14:10  molisiye  阅读(380)  评论(0编辑  收藏  举报