SSH的框架整合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH的框架整合相关的知识,希望对你有一定的参考价值。

struts 控制用的   

hibernate 操作数据库的 

spring 用解耦的 

 

 

第一步:先创建一个wed项目 。

 

 

 

第二步:配置struts2

1.添加Struts2所需要的基本jar包到 lib目录下 包名如下图:

技术分享

 2.在web.xml 文件里添加struts的过滤器配置如下:《提示:struts2-2.3版本》

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ssh</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

 3.在web.xml 文件里添加struts的过滤器配置如下:《提示:struts2-2.5版本》

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ssh</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
      <filter>
        <filter-name>struts-prepare</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
    </filter>

    <filter>
        <filter-name>struts-execute</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
    </filter>


    <filter-mapping>
        <filter-name>struts-prepare</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>struts-execute</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

 4.在src目录下创建struts配置文件,struts.xml,内容如下:《提示:注意配置头信息需要对应的版本》

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
   <struts>
       <package name="struts2" extends="struts-default">
       </package>
   </struts> 

 

使用Struts2的好处:
1.实现了页面和代码的分离实现了mvc设计理念。
2.获取表单内容,并组织生成参数对象
3.根据请求的参数转发请求适当的控制器
4.在控制器中调用业务接口
5.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现
6.做一些简单的校验或国际化工作



第三步:配置spring 

1.在lib目录下导入spring相关的jar包如下:《提示:spring跟struts结合还需要2个struts的jar包分别是:

struts2-spring-plugin-2.3.30.jar和commons-logging-1.1.3.jar》

 技术分享

 2.在wed.xml文件下配置监听器,配置如下:

 

 <!-- spring的监听器配置开始 -->
    <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>

 

使用Spring的好处:
(1)Spring能有效地组织你的中间层对象。
(2)Spring能消除在许多工程中常见的对Singleton的过多使用。
(3)Spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化。
(4)Spring能够帮助我们真正意义上实现针对接口编程。
(5)在Spring应用中的大多数业务对象没有依赖于Spring。
(6)使用Spring构建的应用程序易于单元测试
(7)Spring支持JDBC和O/R Mapping产品(Hibernate)
(8)MVC Web框架,提供一种清晰,无侵略性的MVC实现方式。
(9)JNDI抽象层,便于改变实现细节,可以方便地在远程服务和本地服务间切换。
(10)简化访问数据库时的例外处理。
(11)Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理。
(12)提供了JavaMail或其他邮件系统的支持。

 

第四步:配置hibernate

1.在lib目录里导入hibernate相关的jar包如下:

 技术分享

2.在entity包下创建实体类

在entity创建实体类对应的xxx..hbm.xml映射文件。


3.应用IOC实现DAO接口

在Dao接口实现类里IndexDaoImpl定义一个sessionFactory的属性提供一个set的方法,方便在spring里注入 注入方式如下:

 

  <bean id="myDao" class="dao.IndexDaoImpl" scope="prototype">
        <property name="sessionFactory" ref="mysessionFactory"></property> 
  </bean>
       
    <!-- mysql hibernate配置 -->
    <!-- 注入sessionFactory -->
    <bean id="mysessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <!-- 注入连接池,包含了数据库用户名,密码等等信息 -->
        <property name="dataSource" ref="myDataSource2"></property>
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <!-- 开机自动生成表 -->
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>entity/xxx.hbm.xml</value>
            </list>
        </property>    
    </bean>
    
    <bean id="myDataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/CardDB"></property>
        <property name="user" value="root"></property>
        <property name="password" value="123456"></property>
    </bean> 

 使用hibernate的好处:

1.连接数据库不用我们来管理。

2.原来是对表操作,现在是对对象操作。

 

   

以上是关于SSH的框架整合的主要内容,如果未能解决你的问题,请参考以下文章

SSH 框架整合(maven版本 xml配置方式)

SpringMVC+hibernate框架整合源码SSH Dubbo,ZooKeeper

SSH框架整合截图总结

SSH框架整合实现Java三层架构实例

SSH框架系列之 Spring 整合 Hibernate 框架

如何整合SpringBoot和Mybatis框架?