SpringBoot是Spring的加强版,但不代表其不需要配置,接下来我们看看有关属性配置的一些方面。
修改访问访问路径
自定义属性和读取
- 我们可以在配置文件中自定义属性,然后来读取这些属性。
- 下面是我自定义的两个字段,我们可以通过控制器来读取
- 新建一个控制器:代码如下
@RestController
@RequestMapping("/hello")
public class HelloControler {
@Value("${name}")
private String name;
@Value("${age}")
private String age;
@RequestMapping(value = "/getString",method = RequestMethod.GET)
public String getString(){
return name+age;
}
}
- 访问后:
上面这个有点难受,我们需要一个属性一个属性去使用Value注解,有没有什么简单点的?有,使用实体类来表示属性。
使用实体类来表示属性
- 首先去配置文件自定义一个类属性数据:
- 定义一个类:
@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = "student")
public class Studnet {
private String name;
private Integer age;
private Integer height;
private String phone;
}
- 控制器中添加注解:
- 写方法:
@RestController
@RequestMapping("/hello")
@EnableConfigurationProperties({Studnet.class})
public class HelloControler {
@Autowired
Studnet studnet;
RequestMapping(value = "/getStudent",method = RequestMethod.GET)
public String getStudentOne(){
return studnet.toString();
}
}
- 注意,这里我们的注解@EnableConfigurationProperties({Studnet.class})可以加在启动主函数上边。
自定义属性文件赋值:
- 我们自己定义一个配置文件user.properties,里面书写内容:
- 定义一个user类进行赋值:
- 结果大家自行探索哈。
关于多环境配置
使用多个yml配置文件进行配置属性文件可以使用多个yml来配置属性,将于环境无关的属性放置到application.yml文件里面;
通过与配置文件相同的命名规范,创建application-{profile}.yml文件 存放不同环境特有的配置,例如 application-test.yml 存放测试环境特有的配置属性,application-prod.yml 存放生产环境特有的配置属性。 通过这种形式来配置多个环境的属性文件
在application.yml文件里面spring.profiles.active=xxx来指定加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置。
- 创建application-dev.yml,application-test.yml,application-prod.yml,分别配置不同的端口号:
- 当我们需要什么配置环境时,就在主application.yml中进行说明:
spring:
profiles:
active: test