springboot使用Druid
恶作剧 javaSpringBoot
[TOC]
# 1.依赖
<dependencies>
<!--mvc支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--QueryDSL支持-->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</dependency>
<!--druid数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--因为是类型安全的,所以还需要加上Maven APT plugin,使用 APT 自动生成一些类:-->
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# 2.配置文件设置
druid数据源配置
#------------------------------------druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
#------------------------------------数据源连接池配置
spring.datasource.druid.initial-size=5
#初始化连接大小
spring.datasource.druid.min-idle=5
#最大连接池数量
spring.datasource.druid.max-active=20
#连接最大等待时间 ms
spring.datasource.druid.max-wait=60000
#间隔多久检测一次,检测需要关闭的空闲连接
spring.datasource.druid.time-between-eviction-runs-millis=60000
#连接池中最小生存时间
spring.datasource.druid.min-evictable-idle-time-millis=300000
#测试连接
spring.datasource.druid.validation-query=select 1 from dual
#申请连接时检测,建议为true,不影响性能,并保证安全性
spring.datasource.druid.test-while-idle=true
#获取连接时检测,建议关闭,影响性能
spring.datasource.druid.test-on-borrow=true
#归还连接时检测,建议关闭,影响性能
spring.datasource.druid.test-on-return=true
#-------------------------------------druid监控配置
#开启web监控的filter
spring.datasource.druid.web-stat-filter.enabled=true
#开启后台管理servlet
spring.datasource.druid.stat-view-servlet.enabled=true
#后台监控的账号密码
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin
#IP白名单(没有配置或为空,表示允许所有访问)
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
#IP黑名单(黑白名单共同存在时,deny优先于allow)
spring.datasource.druid.stat-view-servlet.deny=
#-------------------------------------druid内置Filter
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.druid.filters=stat,wall
#开启sql监控
spring.datasource.druid.filter.stat.enabled=true
#慢查询执行时
spring.datasource.druid.filter.stat.slow-sql-millis=1000
#记录慢查询
spring.datasource.druid.filter.stat.log-slow-sql=true
#配置防火墙
spring.datasource.druid.filter.wall.enabled=true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Jpa配置
spring:
jpa:
show-sql: true #显示SQL语句
hibernate:
ddl-auto: validate #update更新或创建数据库
naming: #命名策略,会将Java代码中的驼峰命名法映射到数据库中会变成下划线法
#implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
properties:
hibernate:
format_sql: true #格式化sql
use_sql_comments: true #显示sql注释
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 3.创建实体类
@Data
@Entity
@Builder
@Table(name = "t_user")
@NoArgsConstructor
@AllArgsConstructor
public class TuserEntity {
@Id
private Long userId;
private String userName;
private String passWord;
private Integer userStatus;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 4.创建repository接口
@Repository
public interface TuserRepository extends JpaRepository<TuserEntity, Long>, JpaSpecificationExecutor<TuserEntity>, QuerydslPredicateExecutor<TuserEntity> {
}
1
2
3
4
5
2
3
4
5
# 5.创建实体管理类
public abstract class QueryDSLEntityManager {
@PersistenceContext
protected EntityManager entityManager;
protected JPAQueryFactory queryFactory;
@PostConstruct
public void init() {
queryFactory = new JPAQueryFactory(entityManager);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 6.创建dao
@Component
public class UserDao extends QueryDSLEntityManager {
@Resource
TuserRepository TuserRepository;
public TuserEntity saveTuser(TuserEntity tuserEntity) {
TuserEntity save = tuserDao.save(tuserEntity);
return save;
}
public List<TuserEntity> findTuser() {
List<TuserEntity> all = tuserDao.findAll();
return all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 7.创建controller
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
UserDao userDao;
@RequestMapping("/save")
public TuserEntity saveTuser() {
TuserEntity tuserEntity = TuserEntity.builder()
.userId(236500L)
.userName("小饼干")
.passWord("admin")
.userStatus(1)
.build();
TuserEntity enti = userDao.saveTuser(tuserEntity);
return enti;
}
@RequestMapping("/findTuser")
public List<TuserEntity> findTuser() {
List<TuserEntity> list = userDao.findTuser();
return list;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 8.效果图

# 9.访问监控地址
默认地址为 localhost:8080/durid 账号密码为配置文件中配置的账号密码
