栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间:发布时间: 百科书网 趣学号

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


热部署

①添加热部署依赖
②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接口类,在自定义方法中实现即可

MyBatis实现CRUD

在springboot库里建表account

DROP TABLE IF EXISTS account;

CREATE TABLE account (
  ID int(11) NOT NULL COMMENT 'ID',
  UID int(11) default NULL COMMENT 'UID',
  MonEY double default NULL COMMENT 'MONEY',
  PRIMARY KEY  (ID)
) 

insert  into account(ID,UID,MONEY) values (1,41,1000),(2,45,1000),(3,41,2000);

定义实体类account


四餐肘子面nice

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/293125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号