一、专业名词解释
1、Spring Boot:简化Spring应用开发的一个框架,对整个Spring技术栈的一个整合
2、Spring Boot的配置文件,Spring有配置文件(.xml) ,Spring Boot 是对Spring 框架的整合,就会优化之前的配置的配置文件,.xml的形式过于繁琐,而.yml的形式结构清晰,易于开发,并以数据为中。Spring Boot的配置文件形式:
①、application.properties:和spring的properties属性差不多
②、application.yml:结构清晰
二、将配置文件自定义属性输出到控制台上
1、先创建一个Spring Boot工程
2、项目初始化工作已经完成,接下来就正是完成主题任务了
2.1、开始自动导包(如果没有也没关系,没啥影响)
2.2、 删除多余的配置项 也可以不用删,没啥影响
2.3、先来启动一下Spring Boot启动类,看看Maven环境是否正常
这个类就是SpringBoot的主类
package com.spring_boot_01_1; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBoot011Application { public static void main(String[] args) { SpringApplication.run(SpringBoot011Application.class, args); } } @SpringBootApplication:这个注解表明这是Spring Boot的启动类,启动这个类下的main方法将启动spring boot的应用
2.4、对整个目录做一个简单的解释
①、main:主要写java代码的地方
②、resource:配置资源
③、src\main\resources\static:存放静态资源的,如前端代码就写这里
④、src\main\resources\templates:这里主要存放模板引擎
⑤、application.properties:这里就写配置类,不过这里主要用application.yml,可删除也不删,不影响,直接在resources下新建一个file,命名为application.yml
2.5、新建实体类并为实体类在配置文件中赋值
①、Person类
package com.spring_boot_01_1.entity; import java.util.List; import java.util.Map; public class Person { // 常规属性 private String name; private Integer age; // map private Map<String,Object> maps; // list private List<String> list; // 对象 private Phone phone; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", maps=" + maps + ", list=" + list + ", phone=" + phone + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Map<String, Object> getMaps() { return maps; } public void setMaps(Map<String, Object> maps) { this.maps = maps; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Phone getPhone() { return phone; } public void setPhone(Phone phone) { this.phone = phone; } }
②、Phone类
package com.spring_boot_01_1.entity; //整个类就是刚刚在Person类中的那个对象,即人的手机的对象,是手机对象的实体类 public class Phone { private String brand; //手机品牌 private String phoneColor; //手机颜色 // getter和setter属性、toString重写方法如下 @Override public String toString() { return "Phone{" + "brand='" + brand + '\'' + ", phoneColor='" + phoneColor + '\'' + '}'; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getPhoneColor() { return phoneColor; } public void setPhoneColor(String phoneColor) { this.phoneColor = phoneColor; } } 2.6、实体类已经完成了,接下来就是在配置文件中为实体类赋值
①、在为实体类赋值前,给配置文件添加一个依赖,这样在写实体类赋值时配置文件就有提示了,在pom.xml 的dependences中添加dependency属性,代码如下:
<!-- 配置文件提示器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
②、实体类和配置文件建立起联系,在实体类上加上两个注解即可@Component和@ConfigurationProperties(prefix="这里写配置前缀")
package com.spring_boot_01_1.entity; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; @Component @ConfigurationProperties(prefix = "person") public class Person { // 常规属性 private String name; private Integer age; // map private Map<String,Object> maps; // list private List<String> list; // 对象 private Phone phone; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", maps=" + maps + ", list=" + list + ", phone=" + phone + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Map<String, Object> getMaps() { return maps; } public void setMaps(Map<String, Object> maps) { this.maps = maps; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Phone getPhone() { return phone; } public void setPhone(Phone phone) { this.phone = phone; } }
③、配置文件内容
person: name: 张三 age: 18 maps: teather: 张三三 address: 湖北黄冈 hobby: 篮球、足球、羽毛球 lists: - 1 - 2 - 3 - 4 phone: brand: 华为 phoneColor: 黑色
2.6、到这里,所有的工作已经完成了,现在就去测试一下,我们在配置文件中写的属性能否在控制台正常输出,我们拭目以待吧!
①、我们来到spring提供的测试环境
②、我们在测试类上添加一个注解@RunWith(SpringRunner.class),表示测试类的运行环境用springBoot的
@RunWith(SpringRunner.class)
③、把刚刚创建的实体类,自动装配一下
@Autowired Person persons;
④、在测试方法中输出一下实体类各信息
package com.spring_boot_01_1; import com.spring_boot_01_1.entity.Person; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBoot011ApplicationTests { @Autowired Person persons; @Test public void contextLoads() { System.out.println(persons); } }
⑤、运行结果