一、Application.properties配置文件
(一)创建Spring Boot的Web项目PropertiesDemo
- 利用Spring Initializr方式创建项目

- 设置项目数据

- 添加依赖

- 设置项目名称及保存位置

- 单击【Finish】按钮,完成项目初始化工作

- 项目编码改为utf-8

(二)在application.properties里添加相关配置
点开resource目录,查看应用程序属性配置文件

1.配置tomcat端口号和web虚拟路径
#修改tomcat默认端口号
server.port=8888
#修改web虚拟路径
server.servlet.context-path=/lzy
启动应用,查看控制台

2.对象类型的配置与使用
(1)创建Pet类
在net.lbj.lesson03里创建bean子包,在子包里创建Pet类

(2)创建Person类
在net.lbj.lesson03.bean包里创建Person类

package net.lbj.lesson03.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* 人类
* 20210428
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private int id; //编号
private String name; //姓名
private List<String> hobby; //爱好
private Map<String, String> family; //家庭成员
private Pet pet; //宠物
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getHobby() {
return hobby;
}
public void setHobby(List<String> hobby) {
this.hobby = hobby;
}
public Map<String, String> getFamily() {
return family;
}
public void setFamily(Map<String, String> family) {
this.family = family;
}
public Pet getPet() {
return pet;
}
public void setPet(Pet pet) {
this.pet = pet;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", hobby=" + hobby +
", family=" + family +
", pet=" + pet +
'}';
}
}
(3)在application.properties里配置对象
person.id=1
person.name=张可可
person.hobby=美食,音乐,旅游
person.family.father=张云光
person.family.mother=吴文燕
person.family.grandpa=张宏宇
person.famliy.grandma=唐雨欣
person.family.son=张君宝
person.family.daughter=张晓敏
person.pet.type=哈士奇
person.pet.name=瑞瑞

(4)给Person类添加注解
添加注解@Component,交给Spring去管理
添加注解@ConfigurationProperties(prefix = “person”)
注意:采用@ConfigurationProperties注解方式,必须要有set方法,才会自动为Person类所有属性注入相应的值,包括简单类型和复杂类型
(5)给Pet类添加注解

(6)从Spring容器里获取Person类的实例并输出
- 实现接口ApplicationContextAware,实现其抽象方法setApplicationContext和声明ApplicationContext对象,并在setApplicationContext里初始化

- 创建测试方法testPerson(),从Spring容器中获取Person类的实例并输出

- 运行测试方法testPerson(),查看结果:出现乱码

(7)解决汉字乱码问题
- 使用JDK工具native2ascii.exe将汉字处理成uncode编码
第一条命令: cd src/main/resources
第二条命令: native2ascii -encoding utf8 application.properties

- 修改application.properties文件
person.id=1
person.name=\u5f20\u53ef\u53ef
person.hobby=\u7f8e\u98df,\u97f3\u4e50,\u65c5\u6e38
person.family.father=\u5f20\u4e91\u5149
person.family.mother=\u5434\u6587\u71d5
person.family.grandpa=\u5f20\u5b8f\u5b87
person.famliy.grandma=\u5510\u96e8\u6b23
person.family.son=\u5f20\u541b\u5b9d
person.family.daughter=\u5f20\u6653\u654f
person.pet.type=\u54c8\u58eb\u5947
person.pet.name=\u745e\u745e

- 运行查看结果

(8)从Spring容器里获取Pet类的实例并输出
- 在测试类里添加测试方法testPet()

运行查看结果

- 注释掉Pet类的配置属性的注解@ConfigurationProperties(prefix = “person.pet”)

再次运行:宠物属性值没有注入

- 修改application.properties,配置宠物对象
#配置宠物对象
pet.type=\u54c8\u58eb\u5947
pet.name=\u745e\u745e
再运行:还是没有注入

- 采用@Value注解方式,给Pet类的属性添加值注解@Value

测试查看效果

二、Application.yaml配置文件
(一)备份application.properties文件
将application.properties文件更名为application.back,即让此文件不起作用
(二)在resoures目录里创建application.yaml文件

- 在application.yaml文件中配置服务器属性,配置person对象属性,配置pet对象属性
#配置服务器
service:
port: 8888
servlet:
context-path: /lzy
#配置person对象
person:
id: 1
name: 张可可
hobby:
旅游
美食
唱歌
family: {
father: 张宇光,
mother: 肖晓丽,
grandpa: 张宏宇,
grandma: 唐雨欣,
son: 张俊彦,
daughter: 张小曦
}
pet:
type: 哈士奇
name: 可可
#配置pet对象
pet:
type: 哈士奇
name: 可可
(三)运行查看效果
- 运行测试方法testPerson()

- 运行测试方法testPet()

三、课后作业
任务:修改StudentInfo项目输出学生信息
我的作业项目名是Information
本文详细介绍了如何在Spring Boot项目中使用application.properties和application.yaml进行配置,涵盖对象配置、字符集处理和对象注入等内容,同时提供课后作业任务——修改StudentInfo项目输出学生信息的指导。
1111

被折叠的 条评论
为什么被折叠?



