用户中心微服务
# 一、数据库设计
# 1、数据库
guli_ucenter
# 2、数据表
guli_ucenter.sql
1
# 二、创建微服务
# 1、创建模块
guli-microservice-ucenter
# 2、配置 pom.xml
<dependencies>
<dependency>
<groupId>com.guli</groupId>
<artifactId>guli-framework-common</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--服务注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--开发者工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</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
62
63
64
65
66
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
62
63
64
65
66
# 3、application.properties
resources目录下创建文件
## 服务端口
server.port=8104
## 服务名
spring.application.name=guli-ucenter
## 环境设置:dev、test、prod
spring.profiles.active=dev
## mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli_ucenter?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
## Hikari是Spring Boot 2.0之后默认整合的数据库连接池,比druid更快的数据库连接池
## 数据源类型
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 连接池名称,默认HikariPool-1
spring.datasource.hikari.pool-name=GuliHikariPool
## 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
spring.datasource.hikari.maximum-pool-size=12
## 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
spring.datasource.hikari.connection-timeout=60000
## 最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size
spring.datasource.hikari.minimum-idle=10
## 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
## 只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
spring.datasource.hikari.idle-timeout=500000
## 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
spring.datasource.hikari.max-lifetime=540000
#连接测试查询
spring.datasource.hikari.connection-test-query=SELECT 1
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/guli/ucenter/mapper/xml/*.xml
## 设置日志级别
## logging.level.root=WARN
#指定注册中心地址
eureka.client.service-url.defaultZone=http://127.0.0.1:8002/eureka/
#eureka服务器上获取的是服务器的ip地址,否则是主机名
eureka.instance.prefer-ip-address=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
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
# 4、logback-spring.xml
# 5、MP代码生成器
# 6、修改entity
disabled和deleted字段添加注解
@ApiModelProperty(value = "是否禁用 1(true)已禁用, 0(false)未禁用")
@TableField(value = "is_disabled")
private Boolean disabled;
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
@TableLogic
@TableField(value = "is_deleted")
private Boolean deleted;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 7、创建SpringBoot配置文件
目前包括:
- MyBatisPlus的配置文件(修改扫描包名)
- Swagger2的配置文件(修改api说明)
# 8、创建SpringBoot启动类
package com.guli.ucenter;
@SpringBootApplication
@ComponentScan(basePackages={"com.guli.ucenter","com.guli.common"})
@EnableEurekaClient
public class UcenterApplication {
public static void main(String[] args) {
SpringApplication.run(UcenterApplication.class, args);
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 9、启动
启动微服务查看是否启动成功,并注册到了Eureka注册中心
# 三、用户注册统计
使用QueryWrapper查询出的用户是非逻辑删除的用户,这里我们想统计所有的用户,因此使用Mapper
# 1、mapper
接口
Integer selectRegisterCount(String day);
1
映射文件
<select id="selectRegisterCount" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM ucenter_member
WHERE DATE(gmt_create) = #{value}
</select>
1
2
3
4
5
2
3
4
5
# 2、service
接口
Integer countRegisterByDay(String day);
1
实现
@Override
public Integer countRegisterByDay(String day) {
return baseMapper.selectRegisterCount(day);
}
1
2
3
4
2
3
4
# 3、controller
package com.guli.ucenter.controller.admin;
@CrossOrigin
@RestController
@RequestMapping("/admin/ucenter/member")
public class MemberAdminController {
@Autowired
private MemberService memberService;
@ApiOperation(value = "今日注册数")
@GetMapping(value = "count-register/{day}")
public R registerCount(
@ApiParam(name = "day", value = "统计日期")
@PathVariable String day){
Integer count = memberService.countRegisterByDay(day);
return R.ok().data("countRegister", count);
}
}
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、Swagger测试
编辑 (opens new window)
上次更新: 2024/06/15, 15:12:25