使用maven工程整合SSH框架詳細教程(Maven+Struts2+Spring+Hibernate)
1、第一步:建立maven工程,在pom.xml檔案中匯入需要的jar包依賴:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zwp</groupId> <artifactId>ssh</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <!-- 定義屬性 --> <properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <struts.version>2.3.24</struts.version> </properties> <!-- 鎖定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>${struts.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>${struts.version}</version> </dependency> </dependencies> </dependencyManagement> <!-- 依賴管理 --> <dependencies> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <!-- 匯入 struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> </dependency> <!-- hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <!-- 資料庫驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> <scope>runtime</scope> </dependency> <!-- c3p0 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <!-- servlet jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <!-- 日誌 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency> <!-- 單元測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <plugins> <!-- 設定編譯版本為1.8 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 預設的tomcat6不支援jdk1.8,訪問頁面時報錯:頁面編譯成.class失敗 解決:配置tomcat7外掛:mvn命令改為:tomcat7:run --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://127.0.0.1:8080/manager/text</url> <server>tomcat8</server> <path>/ssh</path> </configuration> </plugin> </plugins> </build> </project>
2、第二步 搭建struts2環境:
(1)建立action,建立struts.xml配置檔案,配置action:
//Customer的web層:
public class CustomerAction extends ActionSupport {
//根據主鍵查詢:
public String findOne() throws Exception{
return SUCCESS;
}
}
<?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="demo" extends="struts-default" namespace="/"> <!-- 和spring整合後,action將交由spring建立,class的值寫bean的id值 --> <action name="customerAction_*" class="com.zwp.web.CustomerAction" method="{1}"> <result name="success">/index.jsp</result> </action> </package> </struts>
(2)配置struts2的過濾器(web.xml檔案):
<!-- 配置strut2過濾器 --> <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>
3、第三步 搭建hibernate環境:
(1)建立實體類:
//Customer實體類:
public class Customer {
private String custId;
private String custName;
private String address;
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCustId() {
return custId;
}
public void setCustId(String custId) {
this.custId = custId;
}
}
(2)配置實體類和資料庫表對映關係:Customer.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 建立對映配置檔案 -->
<hibernate-mapping>
<class name="com.zwp.domain.Customer" table="t_cust">
<id name="custId" column="custId">
<generator class="uuid"></generator>
</id>
<property name="custName" column="custName"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
(3)建立hibernate核心配置檔案:hibernate.cfg.xml
- 引入對映配置檔案
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 把對映檔案放到核心配置檔案中 -->
<mapping resource="com/zwp/domain/Customer.hbm.xml" />
</session-factory>
</hibernate-configuration>
4、第四步 搭建spring環境:
(1)建立spring核心配置檔案:applicationContext.xml
(2)讓spring配置檔案在伺服器啟動時候載入(web.xml檔案)
- 配置監聽器
- 指定spring配置檔案位置
<!-- 配置監聽器,並指定伺服器在啟動的時候載入配置檔案 -->
<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>
5、第五步 struts2和spring整合:
(1)把action在spring配置(action多例項的):applicationContext.xml檔案
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
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"
<!-- 建立物件與物件注入: -->
<bean id="customerAction" class="com.zwp.web.CustomerAction" scope="prototype"></bean>
</beans>
(2)在struts.xml中action標籤class屬性裡面的值該寫成 bean的id值:
<?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="demo" extends="struts-default" namespace="/">
<!-- 將action的建立交由spring,class的值寫bean的id值 -->
<action name="customerAction_*" class="customerAction" method="{1}">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
6、第六步 spring和hibernate整合:
(1)把hibernate核心配置檔案中資料庫配置,在spring裡面配置:
(2)把hibernate的sessionFactory在spring配置
<!-- 載入屬性檔案 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置連線池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 把hibernate的sessionFactory在spring配置檔案中建立 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 注入dataSource屬性 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 指定hibernate核心配置檔案的位置 -->
<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
</bean>
db.properties檔案:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///ssh
jdbc.username=root
jdbc.password=admin
7、第七步 完成互相注入關係(在dao裡面使用hibernateTemplate):
(1)在dao注入hibernateTemplate物件
(2)在hibernateTemplate物件中注入sessionFactory
(3)在service層注入dao層物件
(4)在web層注入service層物件
//Customer的Dao層介面
public interface CustomerDao {
Customer findOne(String custId);
}
//Customer的Dao層介面實現類,繼承HibernateDaoSupport,該類已經注入了hibernateTemplate物件。
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {
@Override
public Customer findOne(String custId) {
return this.getHibernateTemplate().get(Customer.class, custId);
}
}
//Customer的Service層介面:
public interface CustomerService {
Customer findOne(String custId);
}
//Customer的Service介面實現類:
public class CustomerServiceImpl implements CustomerService{
//注入CustomerDao
private CustomerDao customerDao;
public void setCustomerDao(CustomerDao customerDao) {
this.customerDao = customerDao;
}
public Customer findOne(String custId) {
return customerDao.findOne(custId);
}
}
//Customer的web層:
public class CustomerAction extends ActionSupport {
//注入CustomerService物件;
private CustomerService customerService;
public void setCustomerService(CustomerService customerService) {
this.customerService = customerService;
}
//屬性注入:
private String custId;
public void setCustId(String custId) {
this.custId = custId;
}
//根據主鍵查詢:
public String findOne() throws Exception{
Customer customer = customerService.findOne(custId);
ActionContext.getContext().getValueStack().push(customer);
return SUCCESS;
}
}
applicationContext.xml:
<!-- 開啟事務註解:以下物件的建立和注入,可以使用註解建立 -->
<!-- 第一步:開啟註解驅動;第二步:在類上使用註解 -->
<!-- <tx:annotation-driven transaction-manager="transactionManager"/> -->
<!-- 建立物件與物件注入: -->
<bean id="customerDao" class="com.zwp.dao.impl.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="customerService" class="com.zwp.service.impl.CustomerServiceImpl">
<property name="customerDao" ref="customerDao"></property>
</bean>
<bean id="customerAction" class="com.zwp.web.CustomerAction" scope="prototype">
<property name="customerService" ref="customerService"></property>
</bean>
(5)之前在hibernate配置與本地執行緒繫結的session:
<!-- 配置與本地執行緒繫結的session -->
<property name="hibernate.current_session_context_class">thread</property>
在hibernate與spring整合後,不需要在spring裡面配置與本地執行緒繫結的session。
8、第八步 配置事務:(applicationContext.xml)
<!-- 配置事務 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<!-- 注入sessionFactory,因為sessionFactory裡面包含了dataSource物件 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- xml方式管理事務: -->
<!-- 配置通知:具體增強邏輯 -->
<tx:advice id="txAdvice">
<tx:attributes>
<!-- 匹配業務類中方法名稱 -->
<tx:method name="save*"/>
<tx:method name="update*"/>
<tx:method name="delete*"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 配置aop -->
<aop:config>
<!-- 配置切點:具體哪些方法要增強(真正被增強的方法) -->
<aop:pointcut expression="execution(* com.zwp.serviec.*.*(..))" id="cut"/>
<!-- 配置切面:將增強邏輯作用到切點 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="cut"/>
</aop:config>
9、第九步 編寫成功頁面index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>主頁</title>
</head>
<body>
<!-- 取出push進值棧裡面的值 -->
<s:property value="custName"/>
歡迎光臨
</body>
</html>
10、第十步 啟動並測試:
(1)啟動maven專案輸入命令:tomcat7:run。
(3)出現以下介面和資料則代表成功:
附:專案的工程結構:
相關推薦
使用maven工程整合SSH框架詳細教程(Maven+Struts2+Spring+Hibernate)
1、第一步:建立maven工程,在pom.xml檔案中匯入需要的jar包依賴: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema
maven工程搭建ssm框架詳細開發流程
一.開啟eclipse建立maven工程 這裡不多說了 二.在pom.xml里加入jar包 注意不同版本之間的jar包可能會有衝突,也不要全都加最新版本的jar包,到時解決起來很麻煩 直接點選官網搜尋jar包名下載相應jar包 基本所需的jar包給大家發出來
SSH框架整合過程(Struts2+Spring+Hibernate)
在學習java框架的過程中,我總結過如下文章:在將三大框架都學習一遍之後,再來看看如何整合SSH框架。先來看看SSH框架如何配合使用,如圖所示:整合步驟:1、匯入所需jar包。2、搭建struts2環境
SSH三大框架的搭建整合(struts2+spring+hibernate)
SSH說的上是javaweb經典框架,不能說100%要會SSH框架,但是大部分公司都在用,說到框架,都會提到ssh吧,這次就以很簡單的註冊例子來整合SSH框架。整合框架要注意的是先每個框架單獨測通後再整合,不然整合後出現問題比較難排查。 環境:windows
springboot整合apache ftpserver詳細教程(看這一篇就夠了)
原創不易,如需轉載,請註明出處https://www.cnblogs.com/baixianlong/p/12192425.html,否則將追究法律責任!!! 一、Apache ftpserver相關簡介 Apache FtpServer是100%純Java FTP伺服器。它被設計為基於當前可用的開放
SSH整合(Struts2+Spring+Hibernate)
iso 實體 action sun xmlns prop ftw .com efi 為了方便本次使用的是Myeclipse8.5 一、創建web工程,搭建Struts框架開發環境: 步驟1::導入struts框架所需的jar包 步驟2:在web.xml中配置struts2
後臺播放音樂,防止iphone進入休眠,超詳細教程(可製作音樂鬧鐘)
// 後臺播放音樂 共有4個步驟,一個注意事項 步驟一:在resource資料夾下找到該專案的info.plist新增一個 Required background modes 的陣列 並在下面新增一個元素,其值為 App plays audio 步驟二:
利用AbstractRoutingDataSource實現動態資料來源切換 (一、Spring+Hibernate)
package com.hoo.framework.spring.interceptor; import java.lang.reflect.Proxy; import org.aopalliance.intercept.MethodInterceptor; import org.aopalli
SSM框架整合Maven工程整合Spring+Springmvc+Mybatis(詳細教程,附程式碼)
一、基本概念 1、Spring Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分
SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)
json轉換 需要 acc log4 err ppi junit測試 日誌 enc 使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已經有三個多月了,項目在技術上已經沒有什麽難點了,基於現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地
Idea搭建整合SSH框架(Maven管理)
<strong>1.開發環境</strong>: IntelliJ IDEA: 2016 Maven :3.0x Java 8 2.pom.xml <properties> <project.build.sourceEncoding
SSM整合教程(MAVEN,相當的詳細,細節)
目錄 六,控制層測試和檢視層測試 七,注意事項 九,關於資料庫:自己建立一個數據庫,建立表,以及修改資料來源。 前言:跟著我的思路走,應該可以成功的完成一個SSM框架的整合 使用maven來構建專案的話,首先不用自己去導包之類的,使用
SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)
Spring Springmvc Mybatis--ssm的整合 一、搭建環境sts工具: 根據上圖建立springproject 上圖為專案結構 在此基礎上進行搭建ssm專案
SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)【轉】
使用SSM(Spring、SpringMVC和Mybatis)已經有三個多月了,專案在技術上已經沒有什麼難點了,基於現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地方。之前沒有記錄SSM整合的過程,這次剛剛好基於自己的一個小專案重新搭建了一次,而且比專案搭建的
(實戰篇)SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)
<pre class="html" name="code" snippet_file_name="blog_20170402_1_8023453" code_snippet_id="2295822"><span style="font-size:14px;"><project x
ThinkJS框架入門詳細教程(一)開發環境
install devel 版本 開發 conf doc 瀏覽器 打開 變量 一、前端標配環境 1、nodeJS正確安裝,可以參考:http://www.cnblogs.com/chengxs/p/6221393.html 2、git正確安裝,可以參考:http://w
ThinkJS框架入門詳細教程(二)新手入門項目
logs connect 項目 目錄 itl 合並 sql文件 生產 js框架 一、準備工作 參考前一篇:ThinkJS框架入門詳細教程(一)開發環境 安裝thinkJS命令 npm install -g think-cli 監測是否安裝成功 thin
Struts2+Spring+Hibernate實現員工管理增刪改查功能(一)之ssh框架整合
pri support scrip ext ack efault ring src 兩張 前言 轉載請標明出處:http://www.cnblogs.com/smfx1314/p/7795837.html 本項目是我寫的一個練習,目的是回顧ssh框架的整合以及
使用netbeans 搭建maven工程 整合spring springmvc框架
使用netbeans7.4 自帶的tomcat7.0 所以jdk選擇7.xx 等待生成空的工程 新建web.xml 在pom.xml中新增spring的引用 1 <dependency> 2 <groupId&g
maven整合ssh框架
一、搭建struts2的環境 (1)建立struts2配置檔案:struts.xml (2) 在web.xml中配置struts2的核心過濾器 二、搭建spring環境 (1)建立spring配置檔案applicationContext.xml (2)在web.x