SSM+Maven專案搭建過程(超級詳細)
SSM(Spring+SpringMVC+Mybatis),不多介紹。
Maven 專案構建管理神器,JAR包管理。MAVEN的倉庫配置連結
下圖是完整的目錄結構,看下圖:
建立Maven工程
這裡博主用到的IDE是IntelliJ IDEA,建立工程的過程略有不同,但是大同小異。
groupid和artifactId被統稱為“座標”是為了保證專案唯一性而提出的,如果你要把你專案弄到maven本地倉庫去,你想要找到你的專案就必須根據這兩個id去查詢。groupId一般分為多個段,這裡我只說兩段,第一段為域,第二段為公司名稱。域又分為org、com、cn等等許多,其中org為非營利組織,com為商業組織。舉個apache公司的tomcat專案例子:這個專案的groupId是org.apache,它的域是org(因為tomcat是非營利專案),公司名稱是apache,artigactId是tomcat。
比如我建立一個專案,我一般會將groupId設定為cn.zxl,cn表示域為中國,zxl是我個人姓名縮寫,artifactId設定為ssmProj,表示你這個專案的名稱是ssmProj
選擇Maven倉庫
next——>finish建立成功
建立Maven工程成功後,這裡就可以Debug執行一下了。Hello World!
配置檔案
在這裡樓主將所有的配置檔案放在了config資料夾中,Spring-config.xml和Springmvc和Mybatis-config.xml。
Mybatis配置檔案
Mybatis的配置檔案就是mybatis-config.xml,主要是配置typeAlias,將實體類匹配成XXXMapper.xml中可以直接使用的型別,相當於一個別名,在XXXMapper.xml中就無需再寫完整的實體類全路徑,直接用alias的值來代替。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!--之後用於測試--> <typeAlias type="com.test.entity.User" alias="User" /> </typeAliases> </configuration>
Spring配置檔案
Spring-config.xml 這個配置檔案中,我們主要配置資料來源,Spring的事務管理和Dao介面的掃描,以及對Mybatis的一些列相關配置檔案的掃描。
在這裡,為了後期便於維護,我將資料來源檔案單獨拿出來放在了application.properties
<?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: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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 引入配置檔案 -->
<context:property-placeholder location="classpath:application.properties"/>
<!-- 資料來源配置 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 初始化連線大小 -->
<property name="initialSize" value="${jdbc.initialSize}" />
<!-- 連線池最大數量 -->
<property name="maxActive" value="${jdbc.maxActive}" />
<!-- 連線池最大空閒 -->
<property name="maxIdle" value="${jdbc.maxIdle}" />
<!-- 連線池最小空閒 -->
<property name="minIdle" value="${jdbc.minIdle}" />
<!-- 獲取連線最大等待時間 -->
<property name="maxWait" value="${jdbc.maxWait}" />
</bean>
<!-- 配置資料來源,載入配置,也就是dataSource -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--mybatis的配置檔案-->
<property name="configLocation" value="classpath:config/mybatis-config.xml" />
<!--掃描 XXXmapper.xml對映檔案,配置掃描的路徑-->
<property name="mapperLocations" value="classpath:mybatis/**/*.xml"></property>
</bean>
<!-- Dao介面所在包名,spring會自動查詢其下的類 -->
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.**.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- 事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--開啟事務註解掃描-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
application.properties
#mysql database
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/testfirst
jdbc.username=root
jdbc.password=123456
#定義初始連線數,連線池啟動時建立的連線數量的初始值
jdbc.initialSize=0
#定義最大連線數,同一時間可以從池分配的最多連線數量,0時無限制
jdbc.maxActive=50
#定義最大空閒,當經過一個高峰期後,連線池可以慢慢將已經用不到的連線慢慢釋放一部分,一直減少到maxIdle為止,0時無限制
jdbc.maxIdle=20
#定義最小空閒,當空閒的連線數少於該值時,連線池就會預申請一些連線,以免洪峰來時來不及申請
jdbc.minIdle=0
#請求連線最大等待時間(毫秒),預設-1無期限,超出時間將丟擲異常
jdbc.maxWait=-1
SpringMVC配置檔案
這個配置檔案中我們主要啟用Sping註解驅動,進行靜態資源的配置,註解掃描配置和檢視解析器配置。
<?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:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 自動掃描controller -->
<context:component-scan base-package="com"/>
<!-- 告知Spring,我們啟用註解驅動 -->
<mvc:annotation-driven>
<!-- 設定預設的訊息轉換器 -->
<mvc:message-converters register-defaults="true">
<!-- 設定StringHttpMessageConverter的編碼為UTF-8 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
<!-- 避免ie瀏覽器返回json出現下載檔案 -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes" value="text/html;charset=UTF-8"></property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 配置Spring MVC的檢視解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 有時我們需要訪問JSP頁面,可理解為在控制器controller的返回值加字首和字尾,變成一個可用的URL地址 -->
<!--<property name="prefix" value="/WEB-INF/views/**/"/>-->
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 對靜態資原始檔的訪問,因為Spring MVC會攔截所有請求,導致jsp頁面中對js和CSS的引用也被攔截,配置後可以把對資源的請求交給專案的
預設攔截器而不是Spring MVC-->
<!--<mvc:resources mapping="/static/**" location=""/>-->
<!-- 處理所有靜態內容 -->
<mvc:default-servlet-handler/>
<!-- 檔案上傳 -->
<!--<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!– 編碼格式 –>
<property name="defaultEncoding" value="UTF-8" />
<!– 最大檔案50M –>
<property name="maxUploadSize" value="52428800" />
</bean>-->
</beans>
web.xml檔案的配置
我們在web.xml中載入Spring配置,並且將所有的請求都過濾給Spring MVC來處理,同時設定編碼過濾器解決編碼問題(最後一項可以不配置)。其中Spring MVC的請求過濾就是一個簡單的Servlet配置。
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>maven-ssm</display-name>
<welcome-file-list>
<welcome-file>/WEB-INF/views/index.jsp</welcome-file>
</welcome-file-list>
<!-- 載入Spring容器配置 配置監聽spring-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring容器載入所有的配置檔案的路徑 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-config.xml</param-value>
</context-param>
<!-- 配置SpringMVC核心控制器,將所有的請求(除了剛剛Spring MVC中的靜態資源請求)都交給Spring MVC -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/springmvc-config.xml</param-value>
</init-param>
<!--用來標記是否在專案啟動時就加在此Servlet,0或正數表示容器在應用啟動時就載入這個Servlet,
當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才載入.正數值越小啟動優先值越高 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--為DispatcherServlet建立對映-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 攔截所有請求,千萬注意是(/)而不是(/*) -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 解決post亂碼的過濾器 -->
<filter>
<filter-name>encodingFilter</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>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
在這裡SSM框架就基本完成了,要測試一下,看看是否搭建成功。
測試
MySQL資料庫
CREATE TABLE `user` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(255) DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
我在這裡,逆向工程來生成實體類,Dao介面和對應的Mapper檔案,具體方法我在下一篇部落格會介紹。
UserMapper.java
package com.zxl.dao;
import com.zxl.entity.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper extends Mapper<User> {
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.com.test.dao.UserMapper" >
<resultMap id="BaseResultMap" type="com.zxl.entity.User" >
<!--
WARNING - @mbggenerated
-->
<id column="ID" property="id" jdbcType="INTEGER" />
<result column="Name" property="name" jdbcType="VARCHAR" />
<result column="Age" property="age" jdbcType="INTEGER" />
</resultMap>
</mapper>
User.java
package com.zxl.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
public class User {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "Name")
private String name;
@Column(name = "Age")
private Integer age;
/**
* @return ID
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return Name
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return Age
*/
public Integer getAge() {
return age;
}
/**
* @param age
*/
public void setAge(Integer age) {
this.age = age;
}
}
IndexController.java
package com.zxl.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping("/")
public String index() {
return "index";
}
}
目錄結構如下
好啦,到此大功告成。訪問 http://localhost:8080/
特別的
web.xml中我更改了index.jsp的位置
<welcome-file-list>
<welcome-file>/WEB-INF/views/index.jsp</welcome-file>
</welcome-file-list>
配置檔案時,凡是涉及到路徑的地方一定要加倍注意。
本人水平有限,難免出現紕漏和不足,歡迎批評指正。
相關推薦
SSM+Maven專案搭建過程(超級詳細)
SSM(Spring+SpringMVC+Mybatis),不多介紹。Maven 專案構建管理神器,JAR包管理。MAVEN的倉庫配置連結下圖是完整的目錄結構,看下圖:建立Maven工程這裡博主用到的IDE是IntelliJ IDEA,建立工程的過程略有不同,但是大同小異。
maven搭建及建立專案整個過程(超詳細)
一、概述maven專案管理工具主要兩大作用:構建專案 依賴管理(管理jar包及其所依賴的jar包)基本要求:使用maven管理jar包。特點:約定大於配置【事先約定的規則,大於後期的配置檔案】二、安裝maven1.安裝步驟第一步:解壓檔案到D盤:D:\apache-mave
Maven專案搭建(二):Maven搭建SSM框架
上一章給大家講解了如何使用Maven搭建web專案。 這次給大家介紹一下怎麼使用Maven搭建SSM框架專案。 首先我們來看一下pom.xml的屬性介紹:
超詳細 idea ssm+maven 專案例項(適合新手)
https://blog.csdn.net/khxu666/article/details/79851070#commentBox 我是在上面作者寫的基礎上發現了幾個非常容易犯的錯誤,而且還怎麼也不知道怎麼解決的。在這裡我記錄一下,以免以後再遇到。 https://www.cnblogs.c
使用Eclipse 建立maven專案搭建ssm框架
一:整體專案結構圖二:建立maven專案三:pom.xml配置<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Koa專案搭建過程詳細記錄
Java中的Spring MVC加MyBatis基本上已成為Java Web的標配。Node JS上對應的有Koa、Express、Mongoose、Sequelize等。Koa一定程度上可以說是Express的升級版。許多Node JS專案已開始使用非關係型
記錄一次redis數據庫搭建過程並詳細說明配置
保存 hashing sys 不能 led active 成功 ber cto redis.conf配置文件詳解 Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程daemonize no 當Redis以守護進程方式運行時,Redis默
初學第一日struts2專案搭建過程--萌新們一起來學習交流一下吧
初學第一日struts2專案搭建過程 1:新建一個普通的javawe## 標題b專案(建立的步驟很簡單就貼一張建立好的圖) 2:新建檢視層 jsp頁面(可以新建兩個jsp頁面,註冊和顯示頁面) 3:新建一個控制層 RegisterAction 類 4:在web-info 下的li
struts2專案搭建過程
struts2專案搭建過程 1:新建一個普通的javaweb專案 2:新建檢視層 jsp頁面 3:新建一個控制層 RegisterAction 類 4:在web-inf 下的lib 裡邊新增Struts2所需要的jar包 5:在
SSM+Maven專案有關配置檔案說明
SSM專案配置檔案說明 Spring的配置檔案:applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <!-- 防止二次掃描控制器 --> <context:component-sc
CentOS 7.3下Zabbix 4.0監控搭建過程超詳細教程
Zabbix是一個高度整合的企業級開源網路監控解決方案,與Cacti、nagios類似,提供分散式監控以及集中的web管理介面。zabbix具備常見商業監控軟體所具備的功能,例如主機效能監控,網路裝置效能監控,資料庫效能監控,ftp等通用協議的監控,能夠靈活利用可定製警告機制,允許使用者對事件傳送基於E-ma
Maven 專案搭建及問題解決
Maven 昨天剛剛學習了Maven 專案的搭建。在這裡簡單講解一下Maven如何配置,以及我在配置時遇到的問題。 下載與配置 1.下載 官方下載地址 2.配置環境變數 右鍵 “計算機”,選擇 “屬性”,之後點選 “高階系統設定”,點選"環境變數",來設定環境變數,有以下系統變
Maven專案搭建(三):Maven直接部署專案
上一章給大家講解了如何使用Maven搭建SSM框架專案。 這次給大家介紹一下怎麼使用Maven直接部署專案。 Maven直接部署專案 1.新建系統變數CATALINA_HOME,值為:Tomcat路徑 2.在系統變數 Path的最後
SSM+maven框架搭建好以後出現了406錯誤解決辦法之一
淘淘商城SSM+maven框架搭建好以後出現了406錯誤解決辦法之一 最近使用SSM+maven搭建框架來做淘淘商城專案,在測試item/{id}時出現一個406錯誤。 本專案框架圖如下: 現在開始執行: 專案啟動以後在頁面訪問: 訪問/item/562379時出
ssm小型專案搭建(增刪改查功能)
Crud ssm 小型專案搭建 遇到問題 建立maven專案時pom檔案中<packaging>war</packing>報錯 原因:缺少相對應的web.xml檔案 解決辦法:右擊建立的maven專案,選擇properties下的Proje
Struts2專案搭建過程(簡單例項)
1:新建一個普通的javaweb專案(如圖所示,Struts2Project)。 2:新建檢視層 jsp頁面(如圖所示,分別為資訊顯示頁面index.jsp和資訊註冊頁面register.jsp)。 3:新建一個控制層 RegisterAction 類(如圖所
ssm+maven專案中加入“百度富文字編輯器”,實現圖片上傳
1.在UEditor官方下載編輯器。2.解壓壓縮檔案到資料夾,因為預設的資料夾名字過長,建議重新命名一下資料夾名,我這裡命名為ueditor資料夾中對應的目錄為3.將整個資料夾copy到專案webapp目錄下,(我這裡用的是IDEA,不知道什麼原因直接往IDEA開啟的專案裡拷
Maven專案搭建
下載Maven 下載後直接解壓到 C:\Program Files\apache-maven-3.5.2-bin 配置maven環境變數: 我的電腦->屬性->高階系統設定->環
用idea建maven專案搭建mybatis框架
第一步: 先建立一個maven專案,詳細步驟就不多說了 第二步: 在搭建好的maven專案中開啟pom.xml,載入所需的jar包,配置如下: <project xmlns="http://maven.apache.org/POM/4.0.
Intellij IDEA2017 建立SSM maven專案
Intellij IDEA2017 建立maven專案 關於基礎環境配置這裡不做說明,只在idea上新建建maven專案。 本文章僅為學習過程中的記錄筆記。 一、新建maven專案 1.1、首先開啟idae,點選File–>New–>