idea中Maven环境Spring+Hibernate+Struts2整合(注解版)

来源:互联网 发布:阿里云服务器类型 编辑:程序博客网 时间:2024/05/17 01:26

SSH整合 注解版本

架构:



1.jar包

[java] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <parent>  
  4.         <artifactId>Y2_SSH</artifactId>  
  5.         <groupId>cn.happy</groupId>  
  6.         <version>1.0-SNAPSHOT</version>  
  7.     </parent>  
  8.     <modelVersion>4.0.0</modelVersion>  
  9.     <artifactId>SSHBase_ZJ</artifactId>  
  10.     <packaging>war</packaging>  
  11.     <name>SSHBase_ZJ Maven Webapp</name>  
  12.     <url>http://maven.apache.org</url>  
  13.     <dependencies>  
  14.         <dependency>  
  15.             <groupId>junit</groupId>  
  16.             <artifactId>junit</artifactId>  
  17.             <version>4.3</version>  
  18.             <scope>test</scope>  
  19.         </dependency>  
  20.   
  21.         <!--jta的jar包-->  
  22.         <dependency>  
  23.             <groupId>javax.transaction</groupId>  
  24.             <artifactId>jta</artifactId>  
  25.             <version>1.1</version>  
  26.         </dependency>  
  27.   
  28.         <dependency>  
  29.             <groupId>org.hibernate</groupId>  
  30.             <artifactId>hibernate-core</artifactId>  
  31.             <version>5.0.6.Final</version>  
  32.         </dependency>  
  33.   
  34.   
  35.         <!--以上是hibernate-->  
  36.   
  37.         <!--spring-->  
  38.         <dependency>  
  39.             <groupId>com.oracle</groupId>  
  40.             <artifactId>ojdbc6</artifactId>  
  41.             <version>11.2.0.1.0</version>  
  42.         </dependency>  
  43.         <!--c3p0-->  
  44.         <dependency>  
  45.             <groupId>com.mchange</groupId>  
  46.             <artifactId>c3p0</artifactId>  
  47.             <version>0.9.5.2</version>  
  48.         </dependency>  
  49.   
  50.         <!--Spring-ORM-->  
  51.         <dependency>  
  52.             <groupId>org.springframework</groupId>  
  53.             <artifactId>spring-orm</artifactId>  
  54.             <version> 4.2.2.RELEASE</version>  
  55.         </dependency>  
  56.   
  57.         <!--AOP的相关jar-->  
  58.         <dependency>  
  59.             <groupId> org.aspectj</groupId >  
  60.             <artifactId>aspectjweaver</artifactId >  
  61.             <version> 1.8.7</version >  
  62.         </dependency>  
  63.   
  64.         <dependency>  
  65.             <groupId>org.springframework</groupId>  
  66.             <artifactId>spring-context</artifactId>  
  67.             <version>4.2.0.RELEASE</version>  
  68.         </dependency>  
  69.         <!--struts 2-->  
  70.         <dependency>  
  71.             <groupId>org.apache.struts</groupId>  
  72.             <artifactId>struts2-core</artifactId>  
  73.             <version>2.3.4.1</version>  
  74.         </dependency>  
  75.         <dependency>  
  76.             <groupId>org.apache.struts.xwork</groupId>  
  77.             <artifactId>xwork-core</artifactId>  
  78.             <version>2.3.4.1</version>  
  79.         </dependency>  
  80.         <dependency>  
  81.             <groupId>javaee</groupId>  
  82.             <artifactId>javaee-api</artifactId>  
  83.             <version>5</version>  
  84.         </dependency>  
  85.   
  86.         <!--Spring-web-->  
  87.         <dependency>  
  88.             <groupId>org.springframework</groupId>  
  89.             <artifactId>spring-web</artifactId>  
  90.             <version>4.1.8.RELEASE</version>  
  91.         </dependency>  
  92.   
  93.         <!--Struts整合Spring的jar包-->  
  94.         <dependency>  
  95.             <groupId>org.apache.struts</groupId>  
  96.             <artifactId>struts2-spring-plugin</artifactId>  
  97.             <version>2.3.4.1</version>  
  98.         </dependency>  
  99.   
  100.         <!--Struts2注解支持jar包-->  
  101.         <dependency>  
  102.             <groupId>org.apache.struts</groupId>  
  103.             <artifactId>struts2-convention-plugin</artifactId>  
  104.             <version>2.3.4.1</version>  
  105.         </dependency>  
  106.     </dependencies>  
  107.     <build>  
  108.         <resources>  
  109.             <resource>  
  110.                 <directory>src/main/java</directory>  
  111.                 <includes>  
  112.                     <include>**/*.xml</include>  
  113.                 </includes>  
  114.             </resource>  
  115.         </resources>  
  116.     </build>  
  117. </project>  



2.实体

[java] view plain copy
  1. package cn.ssh.beans;  
  2.   
  3.   
  4. import org.springframework.transaction.annotation.Transactional;  
  5.   
  6. import javax.persistence.*;  
  7.   
  8. /** 
  9.  * Created by linlin on 2017/10/13. 
  10.  */  
  11. @Entity  
  12. @Table(name="Dept")  
  13. public class Dept {  
  14.     @Id  
  15.     @GeneratedValue  
  16.     private Integer deptno;  
  17.     @Column  
  18.     private String deptname;  
  19.   
  20.     public Integer getDeptno() {  
  21.         return deptno;  
  22.     }  
  23.   
  24.     public void setDeptno(Integer deptno) {  
  25.         this.deptno = deptno;  
  26.     }  
  27.   
  28.     public String getDeptname() {  
  29.         return deptname;  
  30.     }  
  31.   
  32.     public void setDeptname(String deptname) {  
  33.         this.deptname = deptname;  
  34.     }  
  35. }  


3.Dao

[java] view plain copy
  1. package cn.ssh.dao;  
  2. import cn.ssh.beans.Dept;  
  3. /** 
  4.  * Created by linlin on 2017/10/13. 
  5.  */  
  6. public interface IDeptDao {  
  7.   public void addDept(Dept dept);  
  8.   
  9. }  


[java] view plain copy
  1. package cn.ssh.dao;  
  2.   
  3. import cn.ssh.beans.Dept;  
  4. import org.hibernate.Session;  
  5. import org.hibernate.SessionFactory;  
  6. import org.springframework.stereotype.Repository;  
  7.   
  8. import javax.annotation.Resource;  
  9.   
  10. /** 
  11.  * Created by linlin on 2017/10/29. 
  12.  */  
  13. @Repository("DeptDao")  
  14. public class DeptDaoImpl implements IDeptDao {  
  15.     @Resource(name="sessionFactory")  
  16.     private SessionFactory sessionFactory;  
  17.     public void addDept(Dept dept) {  
  18.   
  19.         Session session = sessionFactory.getCurrentSession();  
  20.         session.save(dept);  
  21.     }  
  22.   
  23.     public SessionFactory getSessionFactory() {  
  24.         return sessionFactory;  
  25.     }  
  26.   
  27.     public void setSessionFactory(SessionFactory sessionFactory) {  
  28.         this.sessionFactory = sessionFactory;  
  29.     }  
  30. }  


4.Service

[java] view plain copy
  1. package cn.ssh.service;  
  2. import cn.ssh.beans.Dept;  
  3.   
  4. /** 
  5.  * Created by linlin on 2017/10/13. 
  6.  */  
  7. public interface DeptService {  
  8.   public void addDept(Dept dept);  
  9.   
  10. }  


[java] view plain copy
  1. package cn.ssh.service;  
  2.   
  3. import cn.ssh.beans.Dept;  
  4. import cn.ssh.dao.IDeptDao;  
  5. import org.springframework.stereotype.Repository;  
  6. import org.springframework.stereotype.Service;  
  7. import org.springframework.transaction.annotation.Transactional;  
  8.   
  9. import javax.annotation.Resource;  
  10.   
  11. /** 
  12.  * Created by linlin on 2017/10/29. 
  13.  */  
  14. @Service("DeptService")  
  15. public class DeptServiceImpl implements DeptService {  
  16.     @Resource(name="DeptDao")  
  17.     private IDeptDao deptDao;  
  18.     @Transactional  
  19.     public void addDept(Dept dept) {  
  20.         deptDao.addDept(dept);  
  21.     }  
  22.   
  23.     public IDeptDao getDeptDao() {  
  24.         return deptDao;  
  25.     }  
  26.   
  27.     public void setDeptDao(IDeptDao deptDao) {  
  28.         this.deptDao = deptDao;  
  29.     }  
  30. }  


5.Action

[java] view plain copy
  1. package cn.ssh.action;  
  2.   
  3. import cn.ssh.beans.Dept;  
  4. import cn.ssh.service.DeptService;  
  5. import com.opensymphony.xwork2.ActionSupport;  
  6. import org.apache.struts2.convention.annotation.Action;  
  7. import org.apache.struts2.convention.annotation.Namespace;  
  8. import org.apache.struts2.convention.annotation.ParentPackage;  
  9. import org.apache.struts2.convention.annotation.Result;  
  10. import org.springframework.context.annotation.Scope;  
  11. import org.springframework.stereotype.Controller;  
  12.   
  13. import javax.annotation.Resource;  
  14.   
  15. /** 
  16.  * Created by linlin on 2017/10/29. 
  17.  */  
  18. @Controller("deptAction")  
  19. @Scope("prototype")  
  20. @ParentPackage("struts-default")  
  21. @Namespace("/")  
  22. public class DeptAction extends ActionSupport {  
  23.   
  24.     private Dept dept;  
  25.   
  26.     @Resource(name = "DeptService")  
  27.     private DeptService deptService;  
  28.   
  29.     @Action(value = "add", results = {@Result(name = "success", location = "/index.jsp")})  
  30.     public String add() {  
  31.         System.out.println(dept);  
  32.         deptService.addDept(dept);  
  33.         return SUCCESS;  
  34.     }  
  35.   
  36.     public Dept getDept() {  
  37.         return dept;  
  38.     }  
  39.   
  40.     public void setDept(Dept dept) {  
  41.         this.dept = dept;  
  42.     }  
  43.   
  44.     public DeptService getDeptService() {  
  45.         return deptService;  
  46.     }  
  47.   
  48.     public void setDeptService(DeptService deptService) {  
  49.         this.deptService = deptService;  
  50.     }  
  51. }  


6.applicationcontext.xml

[java] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:context="http://www.springframework.org/schema/context"  
  4.        xmlns:tx="http://www.springframework.org/schema/tx"  
  5.   
  6.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  7.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  8.      http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd  
  9.      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">  
  10.   
  11.     <context:component-scan base-package="cn.ssh"></context:component-scan>  
  12.   
  13.     <!--1.Datasource-->  
  14.     <!--1.配置数据源c3p0-->  
  15.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  16.         <property name="driverClass" value="${jdbc.driverClassName}"/>  
  17.         <property name="user" value="${jdbc.username}"/>  
  18.         <property name="password" value="${jdbc.password}"/>  
  19.         <property name="jdbcUrl" value="${jdbc.url}"/>  
  20.     </bean>  
  21.   
  22.     <!--jdbc.properties-->  
  23.     <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>  
  24.   
  25.     <!--2.SessionFactory         类:Local-->  
  26.     <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">  
  27.         <property name="dataSource" ref="dataSource"></property>  
  28.         <property name="hibernateProperties">  
  29.             <props>  
  30.                 <prop key="hibernate.show_sql">true</prop>  
  31.                 <prop key="hibernate.format_sql">true</prop>  
  32.                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>  
  33.                 <prop key="hibernate.current_session_context_class">  
  34.                     org.springframework.orm.hibernate5.SpringSessionContext  
  35.                 </prop>  
  36.             </props>  
  37.             <!--扫描小配置文件 所有的hbm文件-->  
  38.         </property>  
  39.         <property name="packagesToScan" value="cn.ssh.beans"></property>  
  40.     </bean>  
  41.     <!--  5.事务管理器-->  
  42.     <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">  
  43.         <property name="sessionFactory" ref="sessionFactory"></property>  
  44.     </bean>  
  45.     <!--6.事务-->  
  46.     <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>  
  47.   
  48. </beans>  


7.jdbc.properties

[java] view plain copy
  1. jdbc.driverClassName=oracle.jdbc.OracleDriver  
  2. jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl  
  3. jdbc.username=sll  
  4. jdbc.password=sll  


8.web.xml

[java] view plain copy
  1. <!DOCTYPE web-app PUBLIC  
  2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  3.  "http://java.sun.com/dtd/web-app_2_3.dtd" >  
  4.   
  5. <web-app>  
  6.   <context-param>  
  7.     <param-name>contextConfigLocation</param-name>  
  8.     <param-value>classpath:applicationContext.xml</param-value>  
  9.   </context-param>  
  10.   <filter>  
  11.     <filter-name>struts2</filter-name>  
  12.     <filter-class>  
  13.       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
  14.     </filter-class>  
  15.   </filter>  
  16.   <filter-mapping>  
  17.     <filter-name>struts2</filter-name>  
  18.     <url-pattern>/*</url-pattern>  
  19.   </filter-mapping>  
  20.   <listener>  
  21.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  22.   </listener>  
  23.   <welcome-file-list>  
  24.     <welcome-file>addDept.jsp</welcome-file>  
  25.   </welcome-file-list>  
  26. </web-app>  


9.页面

[java] view plain copy
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: linlin  
  4.   Date: 2017/10/10  
  5.   Time: 19:29  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" isELIgnored="false" %>  
  9. <%--导入Struts2标签库--%>  
  10. <%@taglib uri="/struts-tags" prefix="s" %>  
  11. <html>  
  12. <head>  
  13.     <title>SSH整合</title>  
  14. </head>  
  15. <body>  
  16. <h1>SSH第一次整合</h1>  
  17. <form action="/add" method="post">  
  18.     名字 :<input name="dept.deptname"/><br/>  
  19.     <input type="submit" value="提交"/>  
  20. </form>  
  21.   
  22. </body>  
  23. </html>