本篇文章,和大家分享一下如何使用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简单的使用