使用idea 搭建一個 SpringBoot + Mybatis + logback 的maven 專案
阿新 • • 發佈:2019-01-06
注意專案名不能大寫,把專案型別換成War型別。
使用 mybatis-generator 外掛 生成 實體類 和 介面
在 resources 目錄 中 新建一個 generatorConfig.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> <context id="default" targetRuntime="MyBatis3Simple"> <!--建立class時,對註釋進行控制--> <commentGenerator> <property name="suppressDate" value="true" /> <!--去除註釋--> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--jdbc的資料庫連線--> <jdbcConnection driverClass="org.mariadb.jdbc.Driver" connectionURL="jdbc:mariadb://localhost:3306/test" userId="oukele" password="oukele"> </jdbcConnection> <!-- Model模型生成器 targetPackage -> 指定生成的model生成所在的包名 targetProject -> 指定在該專案下所在的路徑 --> <javaModelGenerator targetPackage="com.oukele.myspringbootproject.entity" targetProject="src/main/java"> <!-- 是否對類CHAR型別的列的資料進行trim操作 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--Mapper對映檔案生成所在的目錄 為每一個數據庫的表生成對應的SqlMap檔案--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/> <!-- 客戶端程式碼,生成易於使用的針對Model物件和XML配置檔案 的程式碼 type="ANNOTATEDMAPPER",生成Java Model 和基於註解的Mapper物件 type="MIXEDMAPPER",生成基於註解的Java Model 和相應的Mapper物件 type="XMLMAPPER",生成SQLMap XML檔案和獨立的Mapper介面 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.oukele.myspringbootproject.dao" targetProject="src/main/java"/> <!-- tableName 表名 % -> 全部表 --> <table tableName="user"> <generatedKey column="id" sqlStatement="Mysql"/> </table> </context> </generatorConfiguration>
在 pom.xml 檔案新增外掛。
<!-- mybatis.generator 外掛 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> </configuration> <!-- 資料庫依賴 --> <dependencies> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>2.3.0</version> </dependency> </dependencies> </plugin>
然後。
生成成功。
現在 來 配置 application.properties 檔案。
#設定 Tomcat 埠號 server.port=8081 # 配置 mybatis # 設定 別名型別包 (實體類) mybatis.type-aliases-package=com.oukele.myspringbootproject.entity # 設定 mybatis 對映 的 SQL語法 xml檔案 mybatis.mapper-locations=classpath:mapper/*.xml # 連線資料庫 spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://localhost:3306/test spring.datasource.username=oukele spring.datasource.password=oukele # 設定資料來源 (c3p0連線池) spring.datasource.type=com.mchange.v2.c3p0.ComboPooledDataSource #啟動 熱部署 spring.devtools.livereload.enabled=true
如果嫌 上面的寫法 太囉嗦 可將 application.properties 檔案 字尾名改成 yml
內容改成如下:
# mybatis 配置
mybatis:
typeAliasesPackage: com.oukele.myspringbootproject.entity
mapperLocations: classpath:mapper/*.xml
spring:
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/test
username: oukele
password: oukele
# 資料來源
type: com.mchange.v2.c3p0.ComboPooledDataSource
# 這裡是預設配置
spring.devtools.restart.enabled: true
# 設定重啟的目錄
spring.devtools.restart.additional-paths: src/main/java
# classpath目錄下的WEB-INF資料夾內容修改不重啟
server:
port: 8081
pom.xml 中依賴。
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.oukele</groupId>
<artifactId>my-springboot-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>my-springboot-project</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--監控容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 資源庫 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--檢視引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 熱部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- springboot 自動配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--資料庫驅動-->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.3.0</version>
</dependency>
<!--c3p0 連線池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis.generator 外掛 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
<!-- 資料庫依賴 -->
<dependencies>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
這裡,我們啟動專案,看下能不能啟動。
首先在 templates 檔案中 新建一個 index.html 網頁
然後。
最後
啟動成功。
效果如下:
開始我們的主菜。
- 專案結構
service包中UserService介面
package com.oukele.myspringbootproject.service;
import com.oukele.myspringbootproject.entity.User;
import java.util.List;
public interface UserService {
List<User> listAll();
}
serviceImp包中UserServiceImp類
package com.oukele.myspringbootproject.serviceImp;
import com.oukele.myspringbootproject.dao.UserMapper;
import com.oukele.myspringbootproject.entity.User;
import com.oukele.myspringbootproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImp implements UserService {
@Autowired
private UserMapper userMapper;//這裡出現紅色波浪線,並不影響使用
@Override
public List<User> listAll() {
return userMapper.selectAll();
}
}
controller包中Usercontroller類
package com.oukele.myspringbootproject.controller;
import com.oukele.myspringbootproject.entity.User;
import com.oukele.myspringbootproject.serviceImp.UserServiceImp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserServiceImp userServiceImp;
@GetMapping(path = "/list")
public List<User> getAll(){
return userServiceImp.listAll();
}
}
類的修改。
package com.oukele.myspringbootproject;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.oukele.myspringbootproject.dao")//掃描介面
public class MySpringbootProjectApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringbootProjectApplication.class, args);
}
}
重啟專案,訪問/list 的結果:
使用logback日誌:
在resources檔案中 新建logback-spring.xml 檔案 (springboot預設集成了 logback 直接在resources建立 logback-spring.xml即可)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%msg%n
</Pattern>
</layout>
</appender>
<logger name="com.oukele.myspringbootproject.dao" level="TRACE" />
<root level="error">
<appender-ref ref="STDOUT" />
</root>
</configuration>
重新啟動的效果:
到這裡,我們就完成了一個專案的搭建。
演示專案下載地址:https://github.com/oukele/my-SpringBoot-Project-One