整合SSH

Posted zzzyiren

tags:

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

Hibernate知识:

1、核心配置文件:

  连接数据库信息、连接池配置

  映射配置

Struts2:

1、相关操作:

创建方式:

  写一个类,写上public String execute();方法

  实现Action接口

  继承ActionSupport类

配置访问action中的多个方法:

  使用通配符

action中获取操作域对象:ServletActionContext

在web.xml配置文件中配置struts2的过滤器

 <!-- 配置struts2的核心配置文件 -->
  <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>

 

2、核心配置文件

  引入头部约束

 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

 

<package name="" namespace="/" extends="struts-default">
      <!-- 后台配置获取商品分类 -->
        <action name="" class="" method="">
               <result name="success"></result>
              <result name="error"></result>
        </action>
  </package>

 

Spring框架:

1、核心配置文件

  命名格式没有太多要求

  引入头部约束

  创建对象

    xml配置:<bean id="" class=""/>

    注解配置:@Commponent(pojo)  @Service(service) @Controller(controller)  @Respository(dao层)

  注入方式:@Autowired

2、ContextLoaderListener监听器

在web.xml配置文件中配置

<listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

SSH整合

1. web应用的三层:

  web:struts2

  service:spring管理ioc和aop

  dao:hibernate操作数据库

struts2核心配置文件编写

 1  <!DOCTYPE struts PUBLIC
 2     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 3     "http://struts.apache.org/dtds/struts-2.3.dtd">
 4 
 5 <package name="" namespace="/" extends="struts-default">
 6       <!-- 后台配置获取商品分类 -->
 7         <action name="" class="" method="">
 8                <result name="success"></result>
 9               <result name="error"></result>
10         </action>
11   </package>

applicationContext.xml配置事务管理和注解扫描

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

<!-- 开启注解扫描 -->
<context:component-scan base-package="com.shop.*"></context:component-scan>
<!-- 开启事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 开启aop注解扫描 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

applicationContext.xml中配置hibernate所需的数据源,连接池,Session Factory

 1 <!-- 配置sessionFactory -->
 2       <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
 3          <property name="hibernateProperties">
 4              <props>
 5                  <prop key="hibernate.dialect">org.hibernate.dialect.mysqlDialect</prop>
 6                  <!-- 配置参数 -->
 7                  <prop key="hibernate.show_sql">true</prop>
 8                  <prop key="hibernate.hbm2ddl.auto">update</prop> 
 9                  <prop key="hibernate.format_sql">true</prop> 
10              </props>
11          </property>
12          <!-- 注入数据库链接信息 -->
13          <property name="dataSource" ref="DataSource"></property>
14          <!-- 告诉spring去哪里找.hbm.xml文件 -->
15          <property name="mappingDirectoryLocations" value="classpath:com/shop/domain"></property>
16      </bean> 
17      
18      <!-- 告诉spring去哪里加载properties配置文件 -->
19      <context:property-placeholder location="classpath:db.properties"/> 
20      <!-- 让spring创建c3p0 -->
21     <bean name="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
22          <property name="driverClass" value="${driverClass}"></property>
23          <property name="jdbcUrl" value="${jdbcUrl}"></property>
24          <property name="user" value="${user}"></property>
25          <property name="password" value="${password}"></property>
26      </bean>

db.properties配置文件,连接数据库

driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/myuser?useUnicode=true&characterEncoding=UTF-8
user=root
password=123456

总结:

1、连接数据库,先获取连接池对象,然后注入到sessionFactory中

2、action是多例的,所以注解要使用@Scope("prototype")

3、dao层操作数据库类继承HibernateDaoSupport

 











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

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

Java的SSH框架整合

SSH整合总结(OA项目)

dwr与ssh框架整合教程

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

Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用