本文将从如何创建Spring Boot项目开始讲解如何搭建一个较为通用的快速开发模板,方便在以后的开发中可以快速的应用,做一个高效的cv
工程师,避免每次写都要去以前的项目里翻工具类和通用配置。
做高效cv
工程师,从搭建自己的常用通用开发模板开始吧,本文的项目源码都放在我的github
上了,有用就给上一个Star
吧
文章目录
创建一个Spring Boot项目
开发工具使用idea
采用idea中的Spring Initializr创建项目(如果第一次使用下载依赖会比较慢)
- 选择 Spring Initializr方式构建
- 配合项目名包路径
- 依赖就选择一个web的就可以,需要什么依赖之后手动加入
- 设置项目存放位置,选择自己的工作空间
- 点击finish开始创建,第一次可能会比较久
- 创建完成后的目录结构
- 修改maven仓库位置,默认创建的是在C盘中的仓库,重新定位到自己的仓库(可不改)
file - > settings ->搜索maven
选中自己的本地仓库地址,点击apply
一个Spring Boot的项目就创建好了
基础配置编写
- 引入常用Maven依赖
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
<!--guava-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>29.0-jre</version>
</dependency>
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--通用工具包commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<!--数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 引入swagger-bootstrap-ui包 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.8.5</version>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!--依赖不传递-->
<optional>true</optional>
</dependency>
<!--jwt-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.2.0</version>
</dependency>
-
创建常用的包
-
配置BasedemoApplication
BasedemoApplication是整个web项目的启动类
配置一下mapper接口的扫描
@SpringBootApplication
@MapperScan("com.example.basedemo.dao")
public class BasedemoApplication {
public static void main(String[] args) {
SpringApplication.run(BasedemoApplication.class, args);
}
}
-
创建配置文件
默认创建了application.properties
手动创建开发环境配置:application-dev.properties
手动创建生产环境配置:application-prov.properties
application.properties内容:spring.profiles.active=dev
application-dev.properties和application-prov.properties根据需求自己配置
#端口
server.port = 3036
#xml文件路径
mybatis-plus.mapper-locations=classpath:mapper/*.xml
#数据类连接
spring.datasource.url=jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=UTF-8&sessionVariables=time_zone='%2B8:00'
spring.datasource.username=root
spring.datasource.password=root
#使用druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#连接驱动
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
#时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
日志配置
Spring Boot默认采用的是SLF4J + LogBack,这也是比较优的一种搭配了,就直接用这个
引入配置文件logback-spring.xml
日志写入根目录下的log目录,每天生成一个日志文件
具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!--控制台日志, 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--文件日志, 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/klchen_summary.log.%d{yyyy-MM-dd}.log</FileNamePattern>