SpringBoot day1 热部署 yml语法 读取配置数据 profile 配置加载顺序 整合MyBatis

十一摆烂三天跟没学一样,从头来


热部署

①添加热部署依赖
②setting - compiler中勾选Build project automatically

新版idea中,Maintenance - Registry中没有compiler.automake.allow.when.app.running选项,移到了Setting - Advance setting中的Allow auto-make to start even if developed application is currently running选项,勾选即可实现热部署
在这里插入图片描述


yml语法

在这里插入图片描述


读取配置数据

以yml配置文件为例

一、@Value方法

适合小量的属性单独读取
在这里插入图片描述

定义一个变量, 在它的上方添加 @Value 注释,注释中使用"${name}"来从配置文件中获取数据。

变量名可以任意定义,@Value注释中的名字必须和yml文件中对应来读取

也可以用这个方法读取yml中某个对象的某个属性

在这里插入图片描述

定义一个方法来输出这些变量,运行刷新浏览器,可以在控制台看到输出
在这里插入图片描述

二、Environment方法

在这里插入图片描述
定义一个Environment对象env(spring包下),上方加@Autowired注解,即可使用env的getProperty加键名的方法来获取属性

刷新浏览器后控制台输出
在这里插入图片描述

三、@ConfigurationProperties方法

用于读取yml对应的对象中的所有数据

首先建立person类,添加setter、gettter和toString方法,且添加注释
在这里插入图片描述
其中@ConfigurationProperties中的prefix参数表示前缀,防止对象外有与对象某个属性重名的属性导致读取错误

添加@Autowired注释,建立person对象,在方法中输出person对象查看属性是否与yml配置文件中一致在这里插入图片描述


profile

profile是用来完成不同环境下,配置动态切换功能的

profile配置
一、多profile文件

以yml为例

建立多个yml文件,命名规则为application-xxx.yml
在dev test pro三个文件中分别定义 server.port 为8081 8082 8083
在这里插入图片描述
在application.yml中使用spring.profiles.active来选择配置文件,运行后可以在控制台观察到profile文件改变为dev,端口号根据dev文件修改为8081

同理使用test pro也会作出相应改变
在这里插入图片描述

二、 yml多文档方式

在一个yml文件中,使用一对 - - - 来实现多个文档部分的区分,spring.profiles.active来定义该部分的名称为dev test pro,分别定义端口号为8084 8085 8086 ,最后在yml文件末尾使用spring.config.activate.on-profile来选择配置文件

最新版springboot不再使用spring.profiles.active来进行选择

在这里插入图片描述
在这里插入图片描述

profile激活方式 ()

除了在配置文件中配置,还可以使用虚拟机参数、命令函参数方法来进行激活

修改虚拟机参数,选择Edit Configuration,在VM options中按照格式输入
在控制台上看到,虽然能够选择配置文件,但接口号却没有改变,可能是新旧版本springboot的命令不同,暂时没有解决

还是选在在配置文件中进行配置比较好
在这里插入图片描述
在这里插入图片描述

总结来看还是使用多profile文档+配置文件内配置激活的方法比较直观方便


内部配置加载顺序

共四个配置文件的路径分别为
1.file:./config/ 项目的config目录下
2.file:./ 项目的根目录下
3.classpath:/config/ classpath的config目录
4.classpath:/ classpath的根目录
加载顺序如上,优先级依次降低,高优先级配置的属性会生效,后续配置中的相同属性则不会生效

如四个配置中分别配置server.port 属性,最后生效的是配置1中的8084

在这里插入图片描述

整合MyBatis

使用注解开发为例

创建项目选择添加依赖MySQL Driver和MyBatis Framework

首先使用mysql建立一个用例数据库

CREATE DATABASE springboot;

USE springboot;

DROP TABLE IF EXISTS t_user;

CREATE TABLE t_user (
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  password varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

insert  into t_user(id,username,password) values (1,'zhangsan','123'),(2,'lisi','234');

定义实体类User
在这里插入图片描述
配置一 数据源信息DataSource
如用户名、密码、连接地址
使用yml配置文件为例
在这里插入图片描述

配置二
创建接口类UserMapper,以查询为例
在这里插入图片描述

最后在测试类中注入Mapper接口类,在自定义方法中实现即可
在这里插入图片描述


四餐肘子面nice

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值