简介
工作5年了,现在自我定义是一个产品的研发经理,去年公司老板要每个人拿着自己的PPT在他面前做年终总结,我其中有一条是今年要写一套技术博客文集 then just do it。接下来的一系列的文章是以我现在带的一个项目为基础,从新开始一个后台管理类型的项目(QiYuAdmin–后台管理系统)为推动力来完成,里面有很多东西需要我去注意和学习的地方,太多。
成果
登录
首页
技术架构
这篇文章主要的内容就是搭建项目的基础架构
- SpringBoot 1.5.1
- Mybatis 3.3.8
- Thymeleaf 3.0
- BootStrap 3
- SpringBoot和Druid集成
- SpringBoot、通用Mapper集成和分页插件集成
- 自己封装的基础接口BaseService
- Maven3.3.9、intellij idea2016、MySQL、Tomcat
基于Maven创建SpringBoot项目
解释一下以上几个模块的作用
* qiyu-framework-web:Metronic框架和一些插件
* qiyu-framework-core:整个项目的核心模块
* qiyu-amin-web:qyAdmin所有的页面和自定义静态资源
* qiyu-admin-auth:权限模块
SpringBoot集成Druid
源码网上搜索一大堆,还是贴出来吧
Application.properties配置:
# DataSource settings
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#连接池的配置信息
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
Bean配置:
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.sql.SQLException;
/**
* alibaba druid数据库连接池
*
* @author zhangqing
* @date 2017年02月25日
*/
@Configuration
public class DruidDBConfig {
private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class);
@Value("${spring.datasource.url}")
private String