1. 程式人生 > >SSM整合-01 基礎環境搭建

SSM整合-01 基礎環境搭建

SSM高階整合專案即採用Spring、SpringMVC和MyBatis框架實現增刪改查操作,主要功能點包括分頁、資料校驗(jQuery前端校驗和JSR303後端校驗)、AJAX請求及REST風格的URI等。

SSM高階整合專案的技術點包括:

  • 基礎框架-SSM(Spring + SpringMVC + MyBatis)
  • 專案依賴管理Maven
  • 資料庫-MySQL
  • 前端框架-Bootstrap,可快速搭建簡潔美觀的介面
  • 分頁-PageHelper
  • 逆向工程-MyBatis Generator

以下主要介紹SSM高階整合專案的第一步操作——基礎環境搭建,包括

  • 建立一個Maven工程
  • 引入專案所依賴的jar包
  • 引入Bootstrap前端框架
  • 編寫SSM整合的關鍵配置檔案
  • 測試Mapper

專案完整實現程式碼下載地址:https://download.csdn.net/download/bingbeichen/10578683。


###1. 建立Maven工程

第一步,安裝Maven核心程式。

  • 解壓Maven核心程式的壓縮包,將其存放在一個非中文且無空格的目錄下,如D:\iBaBei\Java
  • 配置Maven相關的環境變數
    • 配置MAVEN_HOME或M2_HOME為D:\iBaBei\Java\apache-maven-3.2.2
    • 在path環境變數中新增D:\iBaBei\Java\apache-maven-3.2.2\bin
  • 驗證,即在WINDOWS命令列中執行mvn -v命令檢視Maven版本。

第二步,修改Maven本地倉庫的預設位置。

  • 本地倉庫的預設位置為C:\Users[當前使用者名稱].m2\repository
  • 在Maven解壓目錄的conf\setting.xml中找到localRepository標籤
  • <localRepository>/path/to/local/repo</localRepository>從註釋中釋放
  • 將標籤體內容修改為自定義的本地倉庫位置。

第三步,在Eclipse中設定Maven外掛。

  • Window — Preferences — Maven — Installations — Add
    • 將Installation home配置為Maven核心程式所在位置
    • 將Installation name配置為apache-maven-3.2.2
  • Window — Preferences — Maven — User Settings
    • 將User Settings配置為apache-maven-3.2.2\conf\setting.xml檔案所在位置

第四步,在Eclipse中建立一個Maven的Web工程。

  • New — Maven Project — 勾選Create a simple project — Next
    • 配置工程的座標(Group Id、Artifact Id、Version)
    • 配置工程的打包方式為war(若為Java工程則選擇jar)
  • Properties — Project Facets — 取消勾選Dynamic Web Module — Apply,以欺騙Eclipse該工程為Java工程
  • 再勾選Dynamic Web Module — Further configuration available — 配置Content directory為src/main/webapp — 勾選Generate web.xml deployment descriptor,以產生META-INF和WEB-INF目錄。

至此,Maven工程建立完畢。


###2. 在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.qiaobc</groupId>
	<artifactId>ssm-crud</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<!-- 
		引入專案所依賴的jar包:
			spring(切面程式設計、事務管理)、springmvc、mybatis、
			資料庫連線池c3p0及mysql驅動包
			以及其他常用包(jstl、servlet-api、junit等) 
	 -->
	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.0.0.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>5.0.0.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.0.0.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/jstl/jstl -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/junit/junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

</project>

至此,專案基礎環境搭建所需要的jar包全部匯入完畢,後續用到其他包再依次匯入。


###3. 引入Bootstrap前端框架

下載Bootstrap,解壓後存放在專案的src/main/webapp/static目錄下。

下載jQuery,存放在專案的src/main/webapp/static/javascript目錄下。

如需引入Bootstrap前端框架,僅需要在JSP頁面新增如下內容:

<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 引入jQuery -->
<script type="text/javascript" src="static/javascript/jquery-3.3.1.min.js"></script>
<!-- 引入Bootstrap的樣式和JS檔案 -->
<link href="static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<script src="static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>

至此,引入Bootstrap前端框架的操作完成,Bootstrap的具體使用請參看官方文件。


###4. 編寫SSM整合的關鍵配置檔案
在web.xml中配置啟動Spring容器、配置SpringMVC的前端控制器、字元編碼過濾器和REST風格的URI,具體如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	
	<!-- 1. 啟動Spring容器 -->
	<!-- needed for ContextLoaderListener -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>

	<!-- Bootstraps the root web application context before servlet initialization -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- 2. 配置SpringMVC的前端控制器 -->
	<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Map all requests to the DispatcherServlet for handling -->
	<servlet-mapping>
		<servlet-name>springDispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 3. 配置SpringMVC的字元編碼過濾器 : 一定要放在所有過濾器之前 -->
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceRequestEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>forceResponseEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>		
	</filter-mapping>
	
	<!-- 4. 配置使用REST風格的URI : 將頁面傳送來的POST請求轉化為對應的DELETE和PUT請求 -->
	<filter>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>		
	</filter-mapping>
	
</web-app>

編寫SpringMVC的配置檔案WEB-INF/dispatcherServlet-servlet.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		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-4.3.xsd">

	<context:component-scan base-package="com.qiaobc.crud" use-default-filters="false">
		<!-- 只掃描@Controller註解 -->
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
	
	<!-- 配置檢視解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	<!-- 配置處理靜態資源請求:將SpringMVC不能處理的請求交給TOMCAT -->
	<mvc:default-servlet-handler/>
	
	<!-- 配置支援高階功能:JSR303校驗、對映動態請求、快捷的AJAX請求等 -->
	<mvc:annotation-driven/>

</beans>

編寫Spring的配置檔案src/main/resources/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-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

	<!-- Spring配置檔案:負責與業務邏輯有關的配置 -->
	
	<context:component-scan base-package="com.qiaobc.crud">
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
	
	<context:property-placeholder location="classpath:dbconfig.properties"/>
	
	<!-- 1. 配置資料來源 -->
	<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="user" value="${jdbc.user}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>
	
	<!-- 2. 配置與MyBatis框架的整合 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="pooledDataSource"></property>
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
		<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
	</bean>
	
	<!-- 配置掃描器:將MyBatis介面的實現加入到IOC容器中 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 掃描所有DAO介面的實現,接入到IOC容器中 -->
		<property name="basePackage" value="com.qiaobc.crud.dao"></property>
	</bean>
	
	<!-- 3. 配置事務管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="pooledDataSource"></property>
	</bean>	
	
	<!-- 4. 基於XML配置的事務,也可開啟基於註解的事務 -->
	<aop:config>
		<!-- 切入點表示式 -->
		<aop:pointcut expression="execution(* com.qiaobc.crud.service..*(..))" id="txPoint"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
	</aop:config>
	<!-- 配置事務增強:事務如何切入 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<!-- 所有方法都是事務方法 -->
			<tx:method name="*"/>
			<!-- 以get開頭的所有方法 -->
			<tx:method name="get*" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 事務管理器管理資料來源,切入點配置即決定切入哪些方法,事務增強配置即決定切入後怎麼辦 -->
</beans>

其中,src/main/resources/dbconfig.properties檔案內容如下:

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm-crud
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=root

編寫MyBatis配置檔案src/main/resources/mybatis-config.xml,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  
<configuration>
	<settings>
		<!-- 使用駝峰命名法 -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
</configuration>

至此,SSM整合的web.xml、SpringMVC配置檔案、Spring配置檔案、MyBatis配置檔案均編寫完畢。


###5. MyBatis逆向工程

建立專案所需要的資料表:

CREATE TABLE tbl_department(
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    dept_name VARCHAR(255)
);

CREATE TABLE tbl_employee(
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    last_name VARCHAR(255),
    gender CHAR(1),
    email VARCHAR(255),
    dept_id INT(11),
    FOREIGN KEY(dept_id) REFERENCES tbl_department(id)
);

在專案的pom.xml檔案中引入MyBatis Gnerator所需要的jar包:

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.3.7</version>
</dependency>

參考MBG官方文件,在專案根目錄下建立MBG所需要的配置檔案mbg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
	<context id="DB2Tables" targetRuntime="MyBatis3">
		<!-- 配置不生成註釋 -->
		<commentGenerator>
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		
		<!-- 配置資料庫連線資訊 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/ssm-crud" userId="root"
			password="root">
		</jdbcConnection>

		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- 配置JavaBean生成策略 -->
		<javaModelGenerator
			targetPackage="com.qiaobc.crud.bean" targetProject=".\src\main\java">
			<property name="enableSubPackages" value="true" />
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!-- 配置SQL對映檔案的生成策略 -->
		<sqlMapGenerator targetPackage="mapper"
			targetProject=".\src\main\resources">
			<property name="enableSubPackages" value="true" />
		</sqlMapGenerator>

		<!-- 配置Mapper介面的生成策略 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="com.qiaobc.crud.dao" targetProject=".\src\main\java"
            
           

相關推薦

SSM整合-01 基礎環境搭建

SSM高階整合專案即採用Spring、SpringMVC和MyBatis框架實現增刪改查操作,主要功能點包括分頁、資料校驗(jQuery前端校驗和JSR303後端校驗)、AJAX請求及REST風格的URI等。 SSM高階整合專案的技術點包括: 基礎框架-SSM(Sprin

01-Hadoop概述及基礎環境搭建

行存儲 進行 font rpc con sql數據庫 大量 rip 組合 1 hadoop概述 1.1 為什麽會有大數據處理 傳統模式已經滿足不了大數據的增長 1)存儲問題 傳統數據庫:存儲億級別的數據,需要高性能的服務器;並且解決不了本質問題;只能

Spring 框架基礎(01):核心元件總結,基礎環境搭建

本文原始碼:GitHub·點這裡 || GitEE·點這裡 一、Spring框架 1、框架簡介 Spring是一個開源框架,框

Vulkan Tutorial 01 開發環境搭建之Windows

異常 方案 party return info auto 行程 while nload 操作系統:Windows8.1 顯卡:Nivida GTX965M 開發工具:Visual Studio 2017 相信很多人在開始學習Vulkan開發的起始階段都會在開發環境的配置上

solr學習-基礎環境搭建(一)

security 中文 base 拷貝 eba 知識 錯誤 res 自己的 目前網上關於solr6.+的安裝教程很少,有些6.0之前的教程在應用到6.+的版本中出現很多的問題,所以特別整理出來這一片文章,希望能給各位碼農一些幫助! 很少寫些文章,如有不對的地方,還希望多多指

python安裝和基礎環境搭建

sta 環境 hello 想要 ram tps pro .cn table 環境搭建:python和 sublime text(自選) 一:安裝python 1:進入https://www.python.org/ 選擇Downloads —> 選擇系統 —>

ODB學習筆記之基礎環境搭建

com x文件 應用 er關系 c++ sqli size err deb 一,簡介 ODB是應用於C++的一個開源、跨平臺、跨數據庫的對象關系映射(ORM)系統。 它可以讓你持久化C++對象到關系數據庫,而不必處理表、列或者SQL,無需手動編寫任何映射代碼。 ODB

[轉]SAPUI5 (01) - OpenUI5環境搭建

home cat 配置 iap back -c x86 dash get 本文轉自:http://blog.csdn.net/stone0823/article/details/53750094 版權聲明:本文為博主原創文章,轉載請註明出處:http://blog.csd

ubuntu下零基礎建站之python基礎環境搭建

而不是 -s AD 分享圖片 div -a 創建 9.png home 這篇說的是 ubuntu下 python 基礎環境 python2.7(為什麽是2.7而不是3? tornado 對2.7支持比較好,還有很多包也是支持2.7) 1. 輸入python 發現不存在 有p

01 RF環境搭建及簡介

2.4 編譯器 header 入參 高級 window uil 沒有 ref 目錄 [TOC] 一、RF安裝 1.1 Ride安裝 安裝Python2.7,配置好環境變量 安裝wxPython 2.8.12.1 (目前只有這個版本是官方支持的),一鍵式安裝 安裝ride,

雲效(阿裏雲)流水線 + nginx + uWsgi + flask + python3 基礎環境搭建 --備忘

3.6 分享圖片 fff urn art conf con write sqlite 一、開發環境搭建 1、安裝python3 yum -y groupinstall "Development tools" yum -y install zlib-devel

PHP基礎--環境搭建

fig nes .net 頁面 地址 使用 sts close rri 主要: 環境搭建 站點配置    一,環境搭建 1) web運行流程: 1. 瀏覽器輸入地址,回車(發送請求) 2. 根據規則找到對應web服務器。規則如下: 首先在本機ho

hadoop3.1.0 window win7 基礎環境搭建

默認 重新 emp ble %u jvm pac truct log https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基礎環境搭建 前言:在windows

認識Python&基礎環境搭建

environ 解析 .cn 真的 成本 對象 關註 自動 興趣 前言 作為.NET Coder可能.NET Core是現階段首要學習方向,但是說實在的對Core真的不感冒。 原因有幾點: 1.公司項目底層需要的一部分庫,Core還不支持。 2.同樣的需求,.NET

Qt for iOS:基礎環境搭建

Qt 5.4終於出來了,我來填坑了 注:完成Qt for iOS的環境開發,你需要一個裝有OS X系統的主機或者虛擬機器(我用的是實體機-10.10.1) 大致流程: 1.安裝Xcode 6 2.安裝Qt5.4 3.執行一個Demo ~~~~~~~~~~

一、hyperledger fabric 基礎環境搭建

一、安裝環境:centos 7 二、docker 安裝 1、使用 root 許可權登入 Centos。確保 yum 包更新到最新。 sudo yum update 3、解除安裝舊版本(如果安裝過舊版本的話) yum remove docker docke

chap0x01 基於VirtualBox的網路攻防基礎環境搭建例項講解

chap0x01 基於VirtualBox的網路攻防基礎環境搭建例項講解 節點: Victim、Gateway、Attacker 實驗環境: Victim: kali-linux-2018.3-amd64.iso Gateway: kali-linux-2018.3-a

【AI實戰】基礎環境搭建(Ubuntu+conda+tensorflow+GPU+PyCharm)

為方便日常的深度學習模型開發與測試,在自己筆記本上搭建一個深度學習的基礎環境,便於學習AI使用。本人使用的筆記本配置是CPU為8代i5,顯示卡為GTX1060,記憶體為8G,基本上可滿足日常的AI研究與學習。下面將介紹基礎環境的搭建配置過程: 1、安裝Ubuntu 18.04

react(一)基礎環境搭建

以下安裝都需要先搭建nodejs、Npm包管理工具,官網可以下載。 首先用npm 安裝 create-react-app工具,其可以自動地在本地目錄中建立react專案。         在cmd命令列中輸入:

Linux系列課程之二基礎環境搭建

目錄 1.1    實驗環境介紹 1.1.1  vmware簡介 1.1.2  Linux的版本及centos簡介 1.2    搭建vmware虛擬機器 1.3    安裝centos6.5 1