1. 程式人生 > >SSM+Maven專案搭建過程(超級詳細)

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–>