前言
目前正在練手springboot+vue,因為很多步驟會遇到困難,當(dāng)時查完資料解決,過一段時間就會忘記,所以決定建個系列記錄下來。因為中間很多過程已經(jīng)被其他大神寫過,且這次開發(fā)經(jīng)歷僅供學(xué)習(xí)分享與討論,就直接借鑒過來了,會附上原作者傳送門。本次項目準(zhǔn)備寫文檔臨時起意,之前的步驟未作記錄,比如部署linux虛擬機,利用mycat實現(xiàn)讀寫分離等,這個等項目需要用到的時候再加說明。好了現(xiàn)在讓我們開始吧!
第二章 使用IDEA搭建一個簡單的SpringBoot項目——初始化項目
前言
該篇文章質(zhì)量很高,我利用作者教程一次搭建成功,直接復(fù)制過來
創(chuàng)建項目
2.選擇“Spring Initializr”,點擊next;(jdk1.8默認(rèn)即可)
3.完善項目信息,組名可不做修改,項目名可做修改;最終建的項目名為:test,src->main->java下包名會是:com->example->test;點擊next;
4.Web下勾選Spring Web Start,(網(wǎng)上創(chuàng)建springboot項目多是勾選Web選項,而較高版本的Springboot沒有此選項,勾選Spring Web Start即可,2.1.8版本是Spring Web);Template Englines勾選Thymeleaf;SQL勾選:MySQL Driver,JDBC API 和 MyBatis Framework三項;點擊next;
5.選擇項目路徑,點擊finish;打開新的窗口;
6.剛創(chuàng)建好的項目目錄結(jié)構(gòu)

7.點擊右側(cè)的Maven,點擊設(shè)置(扳手圖標(biāo))進(jìn)行項目Maven倉庫的配置;
8.(1)選擇本地Maven路徑;(2)勾選配置文件后邊的選項,然后修改為本地Maven的配置文件,它會根據(jù)配置文件直接找到本地倉庫位置;
9.配置完后,如果沒有自動導(dǎo)包,可以點擊左上角重新導(dǎo)包按鈕,或者呢個下載按鈕,選擇下載所有源文件和文檔
10.在templates文件下新建index.html頁面,作為啟動的初始頁面;
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>hello</title>
- </head>
- <body>
- 你好!初學(xué)者,我是SpringBoot的簡單啟動頁面!
- </body>
- </html>
11.在com.example.test下新建controller文件夾,在controller文件夾下建一個簡單的helloController類;(Controller類要添加@Controller注解,項目啟動時,SpringBoot會自動掃描加載Controller)
- package com.example.test.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class HelloController {
- @RequestMapping("/index")
- public String sayHello(){
- return "index";
- }
- }
12.在resources文件夾下application中先配置DataSource基本信息,application文件有兩種文件格式,一種是以.properties為后綴,一種是以.yml為后綴的,兩種配置方式略有差別,詳情可參考這個網(wǎng)址:http://www.zmynmublwnt.cn/article/154115.htm;在這我是用.yml后綴的文件格式。右鍵application文件選擇Refact,選擇Rename,將后綴改為yml;
- spring:
- datasource:
- name: test #數(shù)據(jù)庫名
- url: jdbc:mysql://localhost:3306/test #url
- username: root #用戶名
- password: 123456 #密碼
- driver-class-name: com.mysql.jdbc.Driver #數(shù)據(jù)庫鏈接驅(qū)動
13.運行項目啟動類TestApplication.java
!可以發(fā)現(xiàn)上面有一個WARN警告,那是因為還沒有配置編寫MyBatis的相關(guān)文件,下面會進(jìn)行詳解;
2019-08-02 09:14:27.473 WARN 9120 --- [
main] o.m.s.mapper.ClassPathMapperScanner
: No MyBatis mapper was found in '[com.example.test]' package. Please check your configuration.
14.在瀏覽器中輸入localhost:8080,回車顯示初始的index界面;到這項目的初步搭建已經(jīng)完成,下面可以下一些簡單的業(yè)務(wù)邏輯,比如從數(shù)據(jù)庫獲取信息,登錄之類的簡單功能;
15.在進(jìn)行下一步編寫時,我們先來鏈接一下數(shù)據(jù)庫;點擊右側(cè)的Database,點“加號”,新建數(shù)據(jù)庫鏈接;
16.填寫數(shù)據(jù)庫相關(guān)信息,點擊Test Connection;
17.如果鏈接失敗可能是驅(qū)動的問題,點擊左上角的小扳手,進(jìn)入數(shù)據(jù)庫設(shè)置界面
18.連接成功后,顯示數(shù)據(jù)庫信息,user表的基本信息也顯示了,下面就照這個來了;
19.往下的我就沒照做了,下面是我自己搭建的項目
20.我的數(shù)據(jù)庫,連的mycat。啟動三臺虛擬機,運行l(wèi)inux1和linux2中的mysql,運行Linux3中的mycat,關(guān)閉防火墻
21.原文傳送門
點這里
第三章 整合全局捕獲異常
前言
@ExceptionHandler 表示攔截異常
• @ControllerAdvice 是 controller 的一個輔助類,最常用的就是作為全局異常處理的切面類
• @ControllerAdvice 可以指定掃描范圍
• @ControllerAdvice 約定了幾種可行的返回值,如果是直接返回 model 類的話,需要使用 @ResponseBody 進(jìn)行 json 轉(zhuǎn)換
o 返回 String,表示跳到某個 view
o 返回 modelAndView
o 返回 model + @ResponseBody
@ControllerAdvice
1. 控制層代碼
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- @RestController
- public class ErrorController {
- // 全局捕獲異常 使用AOP技術(shù),采用異常通知
- @RequestMapping("/getUser")
- public String getUser(int i){
- int j = 1/i;
- return "success"+j;
- }
- }
2.異常攔截代碼
- import org.springframework.web.bind.annotation.ControllerAdvice;
- import org.springframework.web.bind.annotation.ExceptionHandler;
- import org.springframework.web.bind.annotation.ResponseBody;
- import java.util.HashMap;
- import java.util.Map;
- @ControllerAdvice(basePackages = "com.example.test.controller")
- public class GlobalExceptionHandler {
- @ExceptionHandler(RuntimeException.class)
- @ResponseBody
- public Map<String,Object> errorResult(){
- Map<String,Object> errorResultMap = new HashMap<>();
- errorResultMap.put("errorCode","500");
- errorResultMap.put("errorMsg","系統(tǒng)錯誤!");
- return errorResultMap;
- }
- }
3.運行結(jié)果
第四章 springboot+log4j.yml配置日志文件
前言
此處為轉(zhuǎn)載,原作者寫的比較詳細(xì),就一個地方有問題,去掉默認(rèn)日志,加載別的日志 , 切換log4j2日志讀取應(yīng)該放在spring-boot-starter下而不是spring-boot-starter-web;會無法打包
一,Maven 依賴 pom.xml配置
1. 掉默認(rèn)日志,以便切換到log4j2的日志依賴
- <dependency>
- <!-- 包含 mvc,aop 等jar資源 -->
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- <exclusions>
- <!--去掉默認(rèn)日志,加載別的日志 , 切換log4j2日志讀取 -->
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
2. 然后添加如下兩個日志依賴
- <!-- 配置 log4j2 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-log4j2</artifactId>
- </dependency>
- <!-- 加上這個才能辨認(rèn)到log4j2.yml文件 -->
- <dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-yaml</artifactId>
- </dependency>
二,在工程根目錄下添加 lo4g2.yml 配置文件
1, 文件存放位置
2, 配置文件內(nèi)容
- # 共有8個級別,按照從低到高為:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
- Configuration:
- status: warn
- monitorInterval: 30
- Properties: # 定義全局變量
- Property: # 缺省配置(用于開發(fā)環(huán)境)。其他環(huán)境需要在VM參數(shù)中指定,如下:
- #測試:-Dlog.level.console=warn -Dlog.level.xjj=trace
- #生產(chǎn):-Dlog.level.console=warn -Dlog.level.xjj=info
- - name: log.level.console
- value: info
- - name: log.path
- value: log
- - name: project.name
- value: opendoc
- - name: log.pattern
- value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n"
- Appenders:
- Console: #輸出到控制臺
- name: CONSOLE
- target: SYSTEM_OUT
- PatternLayout:
- pattern: ${log.pattern}
- # 啟動日志
- RollingFile:
- - name: ROLLING_FILE
- fileName: ${log.path}/${project.name}.log
- filePattern: "${log.path}/historyRunLog/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
- PatternLayout:
- pattern: ${log.pattern}
- Filters:
- # 一定要先去除不接受的日志級別,然后獲取需要接受的日志級別
- ThresholdFilter:
- - level: error
- onMatch: DENY
- onMismatch: NEUTRAL
- - level: info
- onMatch: ACCEPT
- onMismatch: DENY
- Policies:
- TimeBasedTriggeringPolicy: # 按天分類
- modulate: true
- interval: 1
- DefaultRolloverStrategy: # 文件最多100個
- max: 100
- # 平臺日志
- - name: PLATFORM_ROLLING_FILE
- ignoreExceptions: false
- fileName: ${log.path}/platform/${project.name}_platform.log
- filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
- PatternLayout:
- pattern: ${log.pattern}
- Policies:
- TimeBasedTriggeringPolicy: # 按天分類
- modulate: true
- interval: 1
- DefaultRolloverStrategy: # 文件最多100個
- max: 100
- # 業(yè)務(wù)日志
- - name: BUSSINESS_ROLLING_FILE
- ignoreExceptions: false
- fileName: ${log.path}/bussiness/${project.name}_bussiness.log
- filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
- PatternLayout:
- pattern: ${log.pattern}
- Policies:
- TimeBasedTriggeringPolicy: # 按天分類
- modulate: true
- interval: 1
- DefaultRolloverStrategy: # 文件最多100個
- max: 100
- # 錯誤日志
- - name: EXCEPTION_ROLLING_FILE
- ignoreExceptions: false
- fileName: ${log.path}/exception/${project.name}_exception.log
- filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
- ThresholdFilter:
- level: error
- onMatch: ACCEPT
- onMismatch: DENY
- PatternLayout:
- pattern: ${log.pattern}
- Policies:
- TimeBasedTriggeringPolicy: # 按天分類
- modulate: true
- interval: 1
- DefaultRolloverStrategy: # 文件最多100個
- max: 100
- # DB 日志
- - name: DB_ROLLING_FILE
- ignoreExceptions: false
- fileName: ${log.path}/db/${project.name}_db.log
- filePattern: "${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
- PatternLayout:
- pattern: ${log.pattern}
- Policies:
- TimeBasedTriggeringPolicy: # 按天分類
- modulate: true
- interval: 1
- DefaultRolloverStrategy: # 文件最多100個
- max: 100
- Loggers:
- Root:
- level: info
- AppenderRef:
- - ref: CONSOLE
- - ref: ROLLING_FILE
- - ref: EXCEPTION_ROLLING_FILE
- Logger:
- - name: platform
- level: info
- additivity: false
- AppenderRef:
- - ref: CONSOLE
- - ref: PLATFORM_ROLLING_FILE
- - name: bussiness
- level: info
- additivity: false
- AppenderRef:
- - ref: BUSSINESS_ROLLING_FILE
- - name: exception
- level: debug
- additivity: true
- AppenderRef:
- - ref: EXCEPTION_ROLLING_FILE
- - name: db
- level: info
- additivity: false
- AppenderRef:
- - ref: DB_ROLLING_FILE
- # 監(jiān)聽具體包下面的日志
- # Logger: # 為com.xjj包配置特殊的Log級別,方便調(diào)試
- # - name: com.xjj
- # additivity: false
- # level: ${sys:log.level.xjj}
- # AppenderRef:
- # - ref: CONSOLE
- # - ref: ROLLING_FILE
3, 在application.yml引入log4j2.yml
- #在application.yml引入log4j2.yml
- logging:
- config: classpath:log4j2.yml
三, 不同日志枚舉類
1, 本地日志枚舉類
- package com.tcs.irecr.util;
- /**
- *
- * 本地日志枚舉
- * 由于配置了4個文件存放不同日志,分別為平臺日志(${project.name}_platform.log)、 業(yè)務(wù)日志(${project.name}_bussiness.log)、錯誤日志(${project.name}_exception.log)、DB 日志(${project.name}_db.log),
- * 文件夾外面為運行日志,不同文件日志級別不一樣,因此程序員在開發(fā)時候需要注意引入不同日志,
- * 也就是說開發(fā)出現(xiàn)的日志,程序員可以進(jìn)行分類,分別調(diào)用公共方法即可。
- * 公共類編輯如下;
- *
- * @author 1632369
- *
- */
- public enum LogEnum {
- BUSSINESS("bussiness"),PLATFORM("platform"),DB("db"),EXCEPTION("exception");
- private String category;
- LogEnum(String category) {
- this.category = category;
- }
- public String getCategory() {
- return category;
- }
- public void setCategory(String category) {
- this.category = category;
- }
- }
四, 不同日志工具類util編輯
1, 本地日志參考類
- package com.tcs.irecr.util;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- /**
- * 本地日志參考類
- * @author Administrator
- *
- */
- public class LogUtils {
- /**
- * 獲取業(yè)務(wù)日志logger
- *
- * @return
- */
- public static Logger getBussinessLogger() {
- return LoggerFactory.getLogger(LogEnum.BUSSINESS.getCategory());
- }
- /**
- * 獲取平臺日志logger
- *
- * @return
- */
- public static Logger getPlatformLogger() {
- return LoggerFactory.getLogger(LogEnum.PLATFORM.getCategory());
- }
- /**
- * 獲取數(shù)據(jù)庫日志logger
- *
- * @return
- */
- public static Logger getDBLogger() {
- return LoggerFactory.getLogger(LogEnum.DB.getCategory());
- }
- /**
- * 獲取異常日志logger
- *
- * @return
- */
- public static Logger getExceptionLogger() {
- return LoggerFactory.getLogger(LogEnum.EXCEPTION.getCategory());
- }
- }
五, 運行時自動在工程目錄下生產(chǎn)日志目錄和日志文件
六, 原文章傳送門
點這里
第五章 Spring Boot集成lombok
前言
簡潔代碼,很實用的插件
一,Maven 依賴 pom.xml配置
1. 導(dǎo)入依賴包
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
2. 使用IDEA需要安裝Lombok插件,我這里已經(jīng)下載好,如果沒下載安裝點擊install進(jìn)行下載安裝即可
3. 實體類演示@Data----簡化get/set,toString等方法,@Slf4j------簡化 protected final Logger logger = LoggerFactory.getLogger(this.getClass());
- import lombok.Data;
- @Data
- public class UserInfoDto {
- private Integer id;
- private String name;
- }
- import com.example.test.dto.UserInfoDto;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- @Slf4j
- public class helloController {
- @RequestMapping("/index")
- public String sayHello(){
- UserInfoDto userInfoDto = new UserInfoDto();
- userInfoDto.setId(1);
- userInfoDto.setName("天下第一");
- log.info("打印結(jié)果是-----"+userInfoDto.toString());
- return "index";
- }
- }
3.其他特性
- @Data 標(biāo)簽,生成getter/setter toString()等方法
- @NonNull : 讓你不在擔(dān)憂并且愛上NullPointerException
- @CleanUp : 自動資源管理:不用再在finally中添加資源的close方法
- @Setter/@Getter : 自動生成set和get方法
- @ToString : 自動生成toString方法
- @EqualsAndHashcode : 從對象的字段中生成hashCode和equals的實現(xiàn)
- @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
- 自動生成構(gòu)造方法
- @Data : 自動生成set/get方法,toString方法,equals方法,hashCode方法,不帶參數(shù)的構(gòu)造方法
- @Value : 用于注解final類
- @Builder : 產(chǎn)生復(fù)雜的構(gòu)建器api類
- @SneakyThrows : 異常處理(謹(jǐn)慎使用)
- @Synchronized : 同步方法安全的轉(zhuǎn)化
- @Getter(lazy=true) :
- @Log : 支持各種logger對象,使用時用對應(yīng)的注解,如:@Log4
第六章 Spring Boot使用@Async實現(xiàn)異步調(diào)用
前言
現(xiàn)實中校驗excel時可能會用到,之前項目校驗上傳數(shù)據(jù)時我是單開了個線程完成通知,看這次能不能替換實現(xiàn)。
一,Controller類
1. 啟動加上@EnableAsync
- import com.example.test.service.MemberService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.EnableAsync;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * springboot異步調(diào)用
- */
- @RestController
- @Slf4j
- @EnableAsync // 開啟異步調(diào)用
- public class MemberController {
- @Autowired
- private MemberService memberService;
- @RequestMapping("/addMemberAndEmail")
- public String addMemberAndEmail(){
- log.info("1");
- String result = memberService.addMemberAndEmail();
- log.info("4");
- return "result"+result;
- }
- }
2.需要執(zhí)行異步方法上加入 @Async,在方法上加上@Async之后 底層使用多線程技術(shù)
- import com.example.test.service.MemberService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- @Service
- @Slf4j
- public class MemberServiceImpl implements MemberService {
- @Override
- @Async // 相當(dāng)于此方法單獨開辟一個新線程執(zhí)行
- public String addMemberAndEmail() {
- log.info("2");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- log.info("3");
- return "2021新年好!!!";
- }
- }
3.執(zhí)行結(jié)果未加 @Async和@Async
4.執(zhí)行結(jié)果加 @Async和@Async
第七章 Spring Boot不同環(huán)境配置文件
前言
注意:yml文件冒號前一定要加空格…
一.@Value的使用與開發(fā),測試,生產(chǎn)環(huán)境不同配置文件使用
1. 此處僅用開發(fā)環(huán)境文件做演示,建立application-dev.yml文件
2. 配置application.yml文件
代碼
- spring:
- profiles:
- active: dev
3. 演示代碼controller層
- import com.example.test.service.MemberService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- @RestController
- public class ValueController {
- @Autowired
- private MemberService memberService;
- @RequestMapping("/testValue")
- public String testValue(){
- return memberService.readUrlbyValue();
- }
- }
4. 演示代碼servicer層
- import com.example.test.service.MemberService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- @Service
- @Slf4j
- public class MemberServiceImpl implements MemberService {
- @Value("${devurl}")
- private String devurl;
- @Override
- @Async // 相當(dāng)于此方法單獨開辟一個新線程執(zhí)行
- public String addMemberAndEmail() {
- log.info("2");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- log.info("3");
- return "2021新年好!!!";
- }
- @Override
- public String readUrlbyValue() {
- return devurl;
- }
- }
5. 運行結(jié)果

第八章 Spring Boot與mybatis三劍客
前言
說實話今天我為了整合這個踩了不少坑,花了將近半天時間才成功。這里記下來避免好學(xué)者和我一樣查資料浪費時間
一.逆向生成文件–神器MyBatis-Generator
1.首先不多說pom.xml導(dǎo)入需要架包,這里踩坑一,我之前用的mysql-connector-java版本是8.0.12,而我的mysql版本只有 5.7.33,生成時會報 CLIENT_PLUGIN_AUTH is required錯誤,而且驅(qū)動應(yīng)該改成"com.mysql.cj.jdbc.Driver"而不是"com.mysql.jdbc.Driver"。
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>1.1.10</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.41</version>
- <scope>runtime</scope>
- </dependency>
- <!--MBG插件-->
- <plugin>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-maven-plugin</artifactId>
- </plugin>
2. 配置generatorConfig.xml文件, 配置文件中的是配置驅(qū)動的一個簡單的方式,可以通過location制定路徑。
? 元素用于指定生成一組對象的環(huán)境。例如指定要連接的數(shù)據(jù)庫,要生成對象的類型和要處理的數(shù)據(jù)庫中的表。其中的defaultModelType屬性很重要,這個屬性定義了MBG如何生成實體類,推薦使用flat模式,為每一張表只生成一個包含表所有字段的實體類。
? 指定生成實體類的生成路徑,trimStrings屬性會對查詢條件進(jìn)行trim操作,默認(rèn)值是false。
? 指定生成xml文件的路徑。
? 指定生成dao接口。
可以配置多個,用于指定生成數(shù)據(jù)庫中的那個表的底層類,可以指定生成的實體類的name,enableCountXXX屬性可以去除不需要的sql方法,其中columnOverride可以指定表中使用的枚舉類,ignoreColumn可以忽略表中的字段,columnOverride和ignoreColumn可以指定0個或多個。
- <?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="F:\repository\mysql\mysql-connector-java\5.1.41\mysql-connector-java-5.1.41.jar"/>
- <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat">
- <property name="javaFileEncoding" value="UTF-8"/>
- <commentGenerator>
- <property name="suppressDate" value="false"/>
- <property name="addRemarkComments" value="true"/>
- <property name="suppressAllComments" value="false"/>
- </commentGenerator>
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://192.168.70.122:8066/TESTDB?useUnicode=true&characterEncoding=utf8&useSSL=false"
- userId="root"
- password="123456">
- <property name="nullCatalogMeansCurrent" value="true"/>
- </jdbcConnection>
- <javaTypeResolver>
- <property name="forceBigDecimals" value="false"/>
- </javaTypeResolver>
- <javaModelGenerator targetPackage="com.example.test.entity"
- targetProject="src\main\java">
- <property name="enableSubPackages" value="true"/>
- <property name="trimStrings" value="true"/>
- </javaModelGenerator>
- <sqlMapGenerator targetPackage="mappers" targetProject="src\main\resources">
- <property name="enableSubPackages" value="true"/>
- </sqlMapGenerator>
- <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.test.dao"
- targetProject="src\main\java">
- <property name="enableSubPackages" value="true"/>
- </javaClientGenerator>
- <table schema="" tableName="user_info" enableCountByExample="true" domainObjectName="userInfo">
- </table>
- <!-- <table schema="ins_personal_claim" tableName="claim_image_info" enableCountByExample="false" domainObjectName="ClaimImageInfo">
- <columnOverride column="image_type" javaType="com.jd.ins.personal.claim.domain.enums.ImageType" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
- <ignoreColumn column="create_time"/>
- <ignoreColumn column="update_time"/>
- </table>-->
- </context>
- </generatorConfiguration>
3. mvn install 和點擊myBatis-Generator生產(chǎn)文件
4. 結(jié)果
二.mybatis plugin
1. mybatis plugin作為一款優(yōu)秀的mybatis跳轉(zhuǎn)插件
2. 安裝重啟,分頁插件就不說了,項目中用別的插件。
到此這篇關(guān)于SpringBoot項目從搭建到發(fā)布一條龍的文章就介紹到這了,更多相關(guān)SpringBoot項目搭建發(fā)布內(nèi)容請搜索我們以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持我們!