ssh基本整合(配置版本)

本篇文章,和大家分享一下如何使用ssh框架做基本的整合(配置式)

1.首先第一步我们需要部分jar包,我这里用的是idea工具,所以只需要引入对应的pom节点。

 1 <!--spring配置-->
 2         <dependency>
 3             <groupId>org.springframework</groupId>
 4             <artifactId>spring-context</artifactId>
 5             <version>4.2.0.RELEASE</version>
 6         </dependency>
 7         <!--aop使用的jar-->
 8         <dependency>
 9             <groupId> org.aspectj</groupId >
10             <artifactId> aspectjweaver</artifactId >
11             <version> 1.8.7</version >
12         </dependency>
13         <!--SpringWeb-->
14         <dependency>
15             <groupId>org.springframework</groupId>
16             <artifactId>spring-web</artifactId>
17             <version>4.1.8.RELEASE</version>
18         </dependency>
19         <!--JavaEE-->
20         <dependency>
21             <groupId>javaee</groupId>
22             <artifactId>javaee-api</artifactId>
23             <version>5</version>
24         </dependency>
25 
26         <dependency>
27             <groupId>javax.servlet</groupId>
28             <artifactId>jstl</artifactId>
29             <version>1.2</version>
30             <scope>runtime</scope>
31         </dependency>
32 
33         <dependency>
34             <groupId>org.springframework</groupId>
35             <artifactId>spring-tx</artifactId>
36             <version>4.2.5.RELEASE</version>
37         </dependency>
38 
39         <!--c3p0-->
40         <dependency>
41             <groupId>com.mchange</groupId>
42             <artifactId>c3p0</artifactId>
43             <version>0.9.5.2</version>
44         </dependency>
45 
46         <!--hibernate jar包-->
47         <!--jta的jar包-->
48         <dependency>
49             <groupId>javax.transaction</groupId>
50             <artifactId>jta</artifactId>
51             <version>1.1</version>
52         </dependency>
53 
54         <dependency>
55             <groupId>org.hibernate</groupId>
56             <artifactId>hibernate-core</artifactId>
57             <version>5.0.6.Final</version>
58         </dependency>
59 
60         <!--Spring-ORM-->
61         <dependency>
62             <groupId>org.springframework</groupId>
63             <artifactId>spring-orm</artifactId>
64             <version> 4.2.2.RELEASE</version>
65         </dependency>
66 
67         <dependency>
68             <groupId>org.apache.struts</groupId>
69             <artifactId>struts2-core</artifactId>
70             <version>2.3.4.1</version>
71         </dependency>
72 
73         <dependency>
74             <groupId>org.apache.struts.xwork</groupId>
75             <artifactId>xwork-core</artifactId>
76             <version>2.3.4.1</version>
77         </dependency>
78 
79         <!--Struts整合Spring的jar包-->
80         <dependency>
81             <groupId>org.apache.struts</groupId>
82             <artifactId>struts2-spring-plugin</artifactId>
83             <version>2.3.4.1</version>
84         </dependency>
85 
86         <!--Struts2注解支持jar包-->
87         <dependency>
88             <groupId>org.apache.struts</groupId>
89             <artifactId>struts2-convention-plugin</artifactId>
90             <version>2.3.4.1</version>
91         </dependency>
92 
93         <dependency>
94             <groupId>com.oracle</groupId>
95             <artifactId>ojdbc6</artifactId>
96             <version>11.2.0.1.0</version>
97         </dependency>
所需maven节点

2.配置web.xml文件,既然叫ssh整合,那么spring的配置和struts2的配置也就必不可少了。

首先是spring配置,我们需要配置两点:

<!--Spring配置
    1.上下文  识别applicationContext.xml
    2.监听器 在Tomcat容器启动的时候,帮我创建Spring容器,并且放入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>

然后是struts2的配置

<!--Struts2配置  核心过滤器 -->
  <filter>
    <filter-name>struts</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

注意:因为配置文件规定的顺序,所以spring的 listener配置要配置在struts2的filter后面。

3.接下来我们关注实体层

我这里以部门类为例

  private Integer deptno;        
private String deptname;
//set,get方法省略

然后配置其hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.ssh.entity">
    <class name="Dept" table="Dept" schema="y2166">
        <id name="deptno" column="DEPTNO">
            <generator class="native"></generator>
        </id>
        <property name="deptname" column="DEPTNAME"></property>
    </class>
</hibernate-mapping>

4.DAO层比较简单两个文件

IDeptDAO

public interface IDeptDAO {
    public int addDept(Dept dept);
}

DeptDAOImpl

public class DeptDAOImpl implements IDeptDAO {
    SessionFactory sessionFactory;
    //set,get方法省略
   
public int addDept(Dept dept) { Session session = sessionFactory.getCurrentSession(); Serializable count = session.save(dept); return (Integer)count; } }

5.service层

IDeptService

public interface IDeptService {
    public int addDept(Dept dept);
}

DeptServiceImpl

   private IDeptDAO dao;
   //set,get方法省略
   @Transactional
   public int addDept(Dept dept) {
        return dao.addDept(dept);
   }

6.action层

  public class DeptAction implements Action{
    private Dept dept;
//set,get方法省略

private IDeptService service; //set,get方法省略
public String execute() throws Exception { service.addDept(dept); return SUCCESS; } }

7.配置文件

首先jdbc.properties文件,此文件专门用于配置连接数据库的属性

jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.username=y2166
jdbc.password=y2166

然后就是最主要的applicationContext.xml文件

此文件内容较多

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
">
    <!--1.数据源  c3p0-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="driverClass" value="${jdbc.driverClassName}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

    <!--2.识别到jdbc.properties-->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

    <!--3.形成SessionFactory-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="hibernateProperties">
            <props>
                <!--方言-->
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <!--是否打印sql-->
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>
            </props>
        </property>
        <!--关联小配置-->
        <property name="mappingDirectoryLocations" value="classpath:cn/ssh/entity"></property>
    </bean>

    <!--4.dao-->
    <bean id="deptDao" class="cn.ssh.dao.DeptDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--5.service-->
    <bean id="deptService" class="cn.ssh.service.DeptServiceImpl">
        <property name="dao" ref="deptDao"></property>
    </bean>

    <!--6.action-->
    <bean id="deptAction" class="cn.ssh.action.DeptAction">
        <property name="service" ref="deptService"></property>
    </bean>

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

    <!--8.事务真实配置-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>

以及最后的struts2文件

<?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>
   <!--修改这个文件的时候,可以自动重新部署-->
    <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
        <action name="add" class="deptAction">
            <result>/jsp/index.jsp</result>
        </action>
    </package>
</struts>

8.jsp界面

<form method="post" action="/add">
      部门名称: <input name="dept.deptname"/>
       <input type="submit" value="添加"/>
</form>

9.最终效果

 

点击添加后

数据库

以上就是使用ssh简单的使用

原文地址:https://www.cnblogs.com/liuhonglihahaha/p/8508722.html