SpringBoot 属性 & 多环境 & 部署
jar包运行属性配置
--键=值 –> --server.port=10010
1 2
| C:\Users\Administrator\Desktop\big-event\target> java -jar big-event-1.0-SNAPSHOT. jar --server.port=9999
|
1 2 3 4 5
| public class Solution{ public static void main(String[] args){ } }
|
属性配置方式
按系统优先级从低到高
- 项目中resources目录下的application.yml
- jar包所在目录下的application.yml
- 操作系统环境变量
- 命令行参数
环境部署
让java类变成jar包
依赖引入jar包插件
1 2 3 4
| <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</version> </pluqin>
|
Q&A
- jar包生成: 执行package命令即可
- jar包运行: java -jar jarPos
- jar包部署: 必须有 jre 环境
多环境开发
Profiles
Springboot提供的Profiles可以用来隔离应用程序配置的各个部分,
并在特定环境下指定部分配置生效
1 2 3 4 5 6 7 8 9 10 11 12 13
| + 如何分割不同环境配置? --- + 如何指定哪些配置属于哪个环境? spring: config: activate: on-profile: 环境名称 + 如何指定哪个环境配置生效? spring: profiles: activate:环境名称
|
文件配置
单文件配置
--- 来分割不同环境配置
spring.config.activate.on-profile配置所属环境
spring.profiles.active激活环境
多文件配置
- 通过多个文件分别配置不同环境的属性
- 文件命名格式:
application-envirName.yml
- 在application.yml中激活环境

#### 分组问题
- 按照配置的类别,把配置信息配置到不同的配置文件中
application-分类名.yml
- 在application.yml中定义分组
spring.profiles.group
- 在application.yml中激活分组
spring.profiles.active
数据分页 PageHelper
PageHelper 是 MyBatis 生态里一个很常用的 分页插件。
它的作用很直接:
自动改造成分页查询。
**PageHelper 负责分页
Page / PageInfo 负责拿分页结果
PageBean 负责统一接口返回结构**
原理
1 2 3 4 5 6 7 8 9 10 11 12 13
| 你调用 startPage(pageNum, pageSize) ↓ PageHelper 把分页参数放到当前线程上下文里 ↓ 执行 mapper 查询 ↓ 分页拦截器拦截这条 SQL ↓ 自动拼接 limit ↓ 再查 total 总记录数 ↓ 返回 Page 对象
|
比如你原本查文章列表:
用了 PageHelper 之后,它会帮你在 SQL 层面加上分页逻辑,类似:
1
| select * from article limit ?, ?
|
并且还会额外帮你查:
所以它不是 Java 代码里手动截 List。
它是拦截 SQL,然后改写 SQL。
使用
引入依赖不必说: pagehelper-spring-boot-starter
1. 查询前开启分页
1
| PageHelper.startPage(pageNum, pageSize);
|
2. 调用mapper拿数据
1 2
| List<Article> list = articleMapper.list(userId, categoryId, state);
|
3. 取出分页结果
1 2 3 4 5 6 7 8 9
| Page<Article> page = (Page<Article>) list;
long total = page.getTotal(); List<Article> items = page.getResult();
PageBean<Article> pb = new PageBean<>(); pb.setTotal(total); pb.setItems(items);
|
注意这里的pageBean要自己编写, 如果前端只要
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @Override public PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state) { PageBean<Article> pb = new PageBean<>();
PageHelper.startPage(pageNum, pageSize);
Map<String, Object> map = ThreadLocalUtil.get(); Integer userId = (Integer) map.get("id");
List<Article> as = articleMapper.list(userId, categoryId, state);
Page<Article> p = (Page<Article>) as;
pb.setTotal(p.getTotal()); pb.setItems(p.getResult());
return pb; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| PageHelper ↓ 开启分页
mapper 查询 ↓ 返回 Page / List
Page / PageInfo ↓ 拿到 total、list 等分页信息
PageBean ↓ 你自己再封装成项目统一返回格式
|
动态SQL
MyBatisAPI