本博客属作者原创,未经允许禁止转载,请尊重原创!如有问题请联系QQ509961766
(一)修改POM文件
打开pom文件
首先在顶部文字加入spring boot的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
</parent>
然后在dependencies里面加入相关依赖
<!-- spring-boot-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- springboot+mybatis官方连接包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-autoconfigure</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!-- json -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!-- log-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
(二)完善properties配置文件
首先打开application.properties文件,把开发测试生成环境分开,打包的时候也方便,我们这里用测试环境为例
#开发/测试/生产环境分别对应dev/test/prod
spring.profiles.active=test
然后新建application-test.properties文件
server.port=8088
server.context-path=/user
logging.config=classpath:logback-spring.xml
#数据库配置
jdbc.datasource.driver=org.gjt.mm.mysql.Driver
jdbc.datasource.url=jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf8&autoReconnect=true
jdbc.datasource.username=root
jdbc.datasource.password=root123
# 下面为连接池的补充设置,应用到上面所有数据源中# 初始化大小,最小,最大
jdbc.datasource.initialSize=5
jdbc.datasource.minIdle=5
jdbc.datasource.maxActive=20
# 配置获取连接等待超时的时间
jdbc.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
jdbc.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
jdbc.datasource.minEvictableIdleTimeMillis=300000
jdbc.datasource.validationQuery=SELECT 1 FROM DUAL
jdbc.datasource.testWhileIdle=true
jdbc.datasource.testOnBorrow=false
jdbc.datasource.testOnReturn=false
# 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
jdbc.datasource.poolPreparedStatements=false
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防御sql注入
jdbc.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
jdbc.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=2000
# 合并多个DruidDataSource的监控数据
#jdbc.datasource.useGlobalDataSourceStat=true
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=wangpan
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=60000
# druid 连接池配置
stat.servlet=/druid/*
stat.allow=192.168.1.225
stat.deny=192.168.1.73
stat.loginUsername=admin
stat.loginPassword=123456
stat.resetEnable=false
stat.urlPatterns=/*
stat.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
(三)完善logback-spring.xml配置文件
在resources目录下新建logback-spring.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 文件输出格式 -->
<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n"/>
<!--控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>
<!-- 每天产生一个文件 INFO -->
<appender name="INFO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>logs/info/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>logs/info/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxFileSize>100MB</maxFileSize>
<MaxHistory>50</MaxHistory>
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 每天产生一个文件 ERROR -->
<appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>logs/error/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>logs/error/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<maxFileSize>100MB</maxFileSize>
<MaxHistory>50</MaxHistory>
<totalSizeCap>10GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--这里切换控制台输出还是文件输出-->
<logger name="dao" level="debug" additivity="false">
<appender-ref ref="console"/>
<!--<appender-ref ref="INFO-FILE" />-->
<!--<appender-ref ref="ERROR-FILE" />-->
</logger>
<!--这里切换控制台输出还是文件输出-->
<root level="info">
<appender-ref ref="console"/>
<!--<appender-ref ref="INFO-FILE" />-->
<!--<appender-ref ref="ERROR-FILE" />-->
</root>
</configuration>
(四)工程目录
- common:工具类,封装类
- config:配置类,拦截器
- controller:控制器
- dao:数据层
- mapper:mybatis xml 映射
- entity:数据库实体类映射
- service:业务层接口
- impl:业务层实现类
- vo:业务层数据对象
- Application:启动类
源码生成利用generateCode.exe工具自动生成controller,dao,mapper,service,impl,vo,entity等代码,包含最基本的增删改查,分页功能
以后我会把这个generateCode.exe工具开源到Git上,大大提高开发效率,一键自动生成增删改查等功能,数据库实体类映射等等
在config里面加入数据源,mybatis,swagger,redis,拦截器等配置,详见源码
(五)启动工程
先修改Application里面,如下,在右键启动项目
package com.wwhy;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@MapperScan(value = "com.wwhy.dao")
@ServletComponentScan
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
控制台打印如下说明启动成功
我们在测试一下mybatis和swagger是否集成成功
在浏览器输入http://localhost:8088/user/druid/index.html,用户密码:admin/123456
这里阿里做的数据库连接池,可以监控sql,
然后在浏览器输入http://localhost:8088/user/swagger-ui.html,显示系统接口,说明成功
上一篇:Spring Boot Vue Element入门实战(十二)PowerDesigner数据库建模
下一篇:Spring Boot Vue Element入门实战(十四)前后台整合增删改查
点击这里返回目录
程序人生,更多分享请关注公众号
源代码下载
关注上面公众号,回复源码即可获取gitbug/gitee下载地址