SSH2框架整合(个人笔记)

SSH框架(struts2+spring+hibernate)的整合方法

        SSH框架在日常开发中占据了很重要的角色,下面记录一下具体的配置方法,以备后续迷茫时救急!

        首先创建一个web项目是必不可少的,俗话说:巧妇难为无米之炊,大军未动粮草先行......我去,扯的有点多了......
正文开始:
第一步:手动导入struts2的8个基本jar包
commons-fileupload-1.2.1.jar
xwork-core-2.2.1.1.jar
struts2-core-2.2.1.1.jar
ognl-3.0.jar
javassist-3.12.0.GA.jar
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
commons-io-1.3.2.jar
第二步:手动创建struts2的核心配置文件(此方法纯属增强记忆,为了提高开发效率,建议利用MyEclipse自动 生成 步骤:右键项目 -> myEclipse -> add struts capabilities)

        步骤1: 在src下创建一个名为struts.xml的核心配置文件

        步骤2: 打开struts.xml,输入如下内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
</struts>
注意:struts.xml正文部分参考struts2-core-2.2.1.1.jar中 org.apache.struts2下default.properties属性集文件

第三步:在web.xml中配置struts的核心过滤器(自动配置struts可忽略此步骤)
    <filter>
        <filter-name>struts2Filter</filter-name>
        <!--位置:struts2核心包下org.apache.struts2.dispatcher.ng.filter下的StrutsPrepareAndExecuteFilter.class-->
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
         <filter-name>struts2Filter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>
第四步:通过MyEclipse配置hibernate(注意:无需创建sessionFactory类)
第五步:通过MyEclipse配置spring

         注意:1  选择 core+jdbc+javaweb   (共5个选项)
                   2  选择通过spring创建sessionFactory的bean

第六步:在web.xml中配置spring  
<!-- 声明spring的配置文件位置 -->
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 配置spring的监听器 -->
<listener>
       <!--位置:org.springframework.web-3.0.5.RELEASE.jar包下 org.springframework.web.context包下  ContextLoaderListener.class -->
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
第七步:在struts2的核心配置文件中  声明使用spring管理action对象
<!-- 声明使用spring管理action对象 通过常量配置:参考defualt.properties
      struts.objectFactory = spring
      struts.objectFactory.spring.autoWire = name
-->
 <constant name="struts.objectFactory" value="spring"/>
 <constant name="struts.objectFactory.spring.autoWire" value="name"
第八步:添加struts和spring结合的包(struts2-spring-plugin-2.2.1.1.jar  注意版本)     
   struts2-spring-plugin-2.2.1.1.jar

        配置到这里,可以暂告一段落了。。。

        这时候我们通过tomcat发布进行测试,

        如果测试中console没有报错说明我们的配置很OK

        没有问题继续向下走!

--------------------------------------------------未命名线------------------------------------------------------

        接下来要配置的可能有一点点抽象了。。。

第九步:进入MySQL or Oracle数据库,通过MyEclipse的hibernate reverse Engineering反向生成DAO工具 类、hibernate映射文件(XX.hbm.xml)和entity实体类
第十步:在spring的核心配置文件中  创建一个 事务管理 bean
<!-- 创建HibernateTranscationManager的bean -->
<bean id="transactionManager_1" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
	<ref bean="sessionFactory"/>
    </property>
</bean>
第十一步:为dao创建一个代理bean  关联事务管理bean
<!-- 通过TrancationProxyFactoryBean类  把事务管理bean和目标对象bean 、dao bean关联起来  形成一个代理bean -->
<bean id="studentDaoProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
   <property name="transactionManager">   <!-- 指定管理事务的bean -->
            <ref bean="transactionManager_1"/>
   </property>
   <property name="target">              <!-- 指定目标对象的bean -->
            <ref bean="studentDao"/>
   </property>
   <property name="proxyTargetClass">    <!-- 指定是否让代理bean替代 目标对象bean-->
            <value>true</value>
   </property>
   <property name="transactionAttributes">  <!-- 事务传播属性 -->
             <props>
                  <prop key="*">PROPAGATION_REQUIRED</prop>
             </props>
    </property>
</bean>
第十二步:创建jsp页面,创建action类
eg(action类):
  public class StudentAction {
	//定义成员变量接受请求参数
	private  String sname;
        private String spwd;
	private int sage;
	//定义dao
	private StudentDAO dao;
	public String registMethod(){
		Student s=new Student(sname, sage, spwd);	   
		dao.save(s);
		return "success";	   
	}
   }	
 <!-- 对action进行配置 -->
     <package name="p1" extends="struts-default" namespace="/student">
        <!--com.XXX.action.StudentAction需要更改为改为action的bean的id stuAction -->
       <action name="regist" method="registMethod" class="com.XXX.action.StudentAction">
           <result name="success"> /student/ok.jsp </result>
       </action>
     </package>
第十三步:在spring的配置文件中为action创建bean
    <!-- 为action创建bean -->
    <bean id="stuAction" class="com.XXX.action.StudentAction">
        <!-- 给属性stuDao赋值 -->
        <property name="dao">
           <ref bean="studentDaoProxy"/>
        </property>
    </bean>
第十四步:删除cglib.jar包(原因:spring内有cglib.jar,造成两jar冲突)

         步骤1:build path  => remove build path

         步骤2:删除lib文件夹下的cglib.jar

注意:使用注解时需要把步骤13屏蔽,在对应的action类上添加@Controller("struts配置的class属性值")
,在对应的引用对象上面添加@AutoWired,后续只需要配置struts即可!

此次记录为原生配置,后续还有简便方法,待更新!

好吧,就先这样了。。。再见




    

 
 

猜你喜欢

转载自blog.csdn.net/GJ454221763/article/details/80366477