最近在系統的學習SpringBoot框架,而且要用該框架作個項目……網上也大大小小看了不少教程,感受不少寫文章的人都不太負責任,只知道搬運,大概都沒有實際操做過,問題也是有不少,因此本身寫一篇文章記錄一下,也打算養成個作筆記的習慣,也但願文章能多多少少的給你們帶來些幫助。php
首先新建項目,可是因爲Maven做者以前就已經弄過了,沒有配置和安裝過的小夥伴能夠網上找下教程,本篇暫時沒有提到。css
如圖選擇,點擊nexthtml
包名什麼的,本身修改下
java
要配置的一些服務,Thymeleaf主要是和返回前臺頁面和一些動態頁面的處理有關,若是隻作後臺接口的話,可能用不到,可是爲了測試仍是建議勾選。Mysql,JDBC,Mybatis就顧名思義了。mysql
其他部分就一直next,最後finish就行了。項目搭建好了以後,會加載一陣子,稍等便可。web
一、配置application.propertiesspring
而後進入到項目路徑下的src/main/resources/application.properties文件sql
首先說明一點,這裏也能夠不使用application.properties文件,採用更加簡潔的application.yml文件。網上不少教程也提到了,可是最終的原理SpringBoot底層會把application.yml文件解析爲application.properties,因此就仍是用了原來的文件,也有一些是我的使用緣由,因此在這裏,只提供application.properties的配置信息,yml能夠參考網上的書寫格式數據庫
# 數據庫訪問配置
# 主數據源,默認的
spring.datasource.url = jdbc:mysql://192.168.0.57:3306/XXXXXXXXXX
spring.datasource.username = root
spring.datasource.password = XXXXXXXXXXXXXXX
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#頁面熱加載
spring.thymeleaf.cache = false
#端口
server.port=8080
#配置應用名稱
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.html複製代碼
二、配置pom.xmlbash
<properties>
<!-- Java接口和實體類 -->
<targetJavaProject>${basedir}/src/main/java</targetJavaProject>
<targetMapperPackage>com.crow.mapper</targetMapperPackage>
<targetModelPackage>com.crow.entity</targetModelPackage>
<!-- XML生成路徑 -->
<targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject>
<targetXMLPackage>mapper</targetXMLPackage>
<!-- 依賴版本 -->
<mapper.version>3.4.0</mapper.version>
<mybatis.version>3.3.1</mybatis.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<pagehelper.version>4.1.1</pagehelper.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Dalston.SR4</spring-cloud.version>
</properties>複製代碼
重點是配置了幾個全局的參數,已經自動生成代碼的路徑和存放位置
三、配置generatorConfig.xml
而後在resources文件夾下建立generator,mapper文件夾,前者是爲了存放mybatis自動生成代碼的插件的配置文件,後者是爲了存放生成的xml文件
新建文件generatorConfig.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>
<!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包-->
<classPathEntry location="D:\crow1.0\mysql-connector-java-8.0.15.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--數據庫鏈接驅動類,URL,用戶名、密碼 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.0.57:3306/AAA" userId="BBB" password="CCC">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成(實體)模型的包名和位置-->
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成XML映射文件的包名和位置-->
<sqlMapGenerator targetPackage="${targetXMLPackage}" targetProject="${targetResourcesProject}">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO接口的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
<table tableName="DDD" domainObjectName="EEE" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>複製代碼
基本上都有註釋了,有幾個地方再簡單說明一下
數據庫驅動的地方要引入一個數據庫驅動包,我是單獨找了個驅動包,而後放在了項目的路徑下,D:\crow1.0\mysql-connector-java-8.0.15.jar也就是這個路徑,這個要根據我的狀況來修改
AAA數據庫名,BBB用戶名,CCC密碼
DDD要去操做數據庫中表的名稱,EEE生成實體的名稱
舉例:DDD爲user,EEE最好爲User
最後部分的配置<table tableName="DDD" domainObjectName="EEE" enableCountByExample="false" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false"></table>前兩個剛纔介紹過了,至於後面的選項,是false和true看實際需求,從參數名能夠看出來,就是是否生成某類方法的意思,不少同窗默認配置的時候都是false,因此就會出現生成的代碼只有insert方法,就是這個問題。在這裏,做者選擇了update,delete,select方法。
在這裏,寫一個簡單的方法,來返回一個頁面
首先在resources/templates下新建hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Title</title>
<link rel="stylesheet" href="../static/test.css" type="text/css"/>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>複製代碼
在resources/static下新建test.css
body{
color: red;
}複製代碼
寫一個controller
package com.crow.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author tzz
* @version 1.00
* @time 2019/4/10 14:41
*/
@Controller
@RequestMapping(value ={"/hello"})
public class IndexController {
@RequestMapping(value ="/index",method = RequestMethod.GET)
public String index(){
return "hello";
}
}複製代碼
而後根據運行並訪問該接口http://localhost:8080/hello/index
但我以爲不少人第一次會出現問題
而後一步步的確認問題,首先並非返回的頁面找不到,由於在項目生成的路徑下能夠看到,直接訪問都沒有問題,排除。其次,打斷點,發現根本就沒有進入到這個接口裏面。查閱資料發現,問題所在,以下圖。
做者的目錄結構是這樣的
最後發現問題是由於
接口類也就是controller文件,和啓動類proapplication不在一個包下。須要在啓動類添加一個註解。
再次啓動項目,成功。可是發現了個新問題,成功是成功了,可是test.css文件沒有引入成功。
我在target文件中發現有test.css可是網頁查看發現資源沒有載入。而後修改一下application.properties配置文件。
註釋掉以前的spring.mvc.view.prefix=/templates/
添加以下配置
spring.mvc.static-path-pattern=/static/**複製代碼
搞定!
上面已經配置好了自動生成代碼,可是如何自動生成呢?
點擊edit config或者點擊菜單欄中的run中的edit config均可以
點擊添加按鈕,選擇maven
而後根據我的狀況,修改一下名稱什麼的,再添加command line參數:mybatis-generator:generate -e
而後選擇剛剛配好的,啓動測試一下
大功告成。之後要換表生成實體的話,只須要修改generatorConfig.xml配置文件中的表的參數就ok,就是那個DDD,忘記了的同窗去上面找一下吧。
備註:有什麼說的不當或者有問題的地方還但願能夠指出,但願你們共同進步。