SpringBoot开发详解(二)--SpringBoot的配置文件以及注解
2018-03-20 23:10
746 查看
Spring Boot的注解以及YML
Spring Boot注解
通过上一篇文章,我们已经快速构建了一个spring boot的项目,那spring boot项目和我们之前使用的springMVC项目有什么区别呢,这一篇我们就来聊一下spring boot为我们开发所带来的便捷性以及配置文件的使用。建立一个controller
@RequestMapping("/round2") @RestController public class Round2Controller { @RequestMapping(method = RequestMethod.GET) public String round2(){ return "ROUND 2"; } }1
2
3
4
5
6
7
8
9
首先我们现在round1的基础上新建一个controller层,返回一个固定的字符串ROUND 2,用postman测试一下,可以顺利访问到。
这里要说明的两个注解,一个是@RequestMapping,这是springMVC的注解,相信大家平时一定很多的使用到。再一个是@RestController的注解,这指该controller使用rest风格返回,返回的是json体,在该controller下的方法返回不用再使用@ResponseBody的注解。
修改配置文件
spring boot中读取配置文件除了可以读取properties后缀的文件外,还引入了yml的读取,用起来也是相当简单,我们先把resource下的application.properties修改为yml文件,接着在其中添加端口号9090。server: port: 90901
2
这里要注意的是yml这种文件的格式,每一个属性下的节点需要缩进,再一个是赋值需要在冒号后留一个空格的位置,一般我通常看idea的颜色变化,橘黄色代表格式正确,灰色则是格式有问题,修改完端口后我们再启动下项目,发现端口已经变更为9090了,说明配置文件生效了。
自定义属性以及@Value取值
除了我们一般使用yml来定义一些我们需要的属性外yml还支持自定义属性,在使用时只需要通过@Value来取值即可。那我们现在yml中添加一些属性。zzp: name: 朱正平 age: 27 height: 182cm weight: 75kg long: 18cm1
2
3
4
5
6
然后我们在刚才的controller中新写一个方法去使用@Value取值,我们可以看到我们想要获取的配置信息已经全部拿到了。
@Value("${zzp.name}") private String name; @Value("${zzp.age}") private Integer age; @Value("${zzp.height}") private String height; @RequestMapping(value = "/zzp",method = RequestMethod.GET) public String getZZPInfo(){ return "zzp.name:" + name + " zzp.age:" + age + " zzp.height:" + height; }1
2
3
4
5
6
7
8
9
10
11
12
13
大家可能会觉得,哎呀,这还是太麻烦了,我如果有一百个属性,那就要写一百个@Value,而且我可能就一个方法用了一下,这样我的代码台污染了,有没有其他方法可以变得更简便,更优雅呢。答案是有的。
我们可以创建一个pojo来接收配置文件中的信息,首先我们先创建一个实体类ZZPProperties,给予相一致的属性,并给予set get方法以及重写toString方法。
这里我们使用@Component注解来保证待会该pojo可以背spring容器所注入,使用@ConfigurationProperties(prefix = “zzp”)注解来获取配置文件中前缀为zzp的配置,prefix指的是前缀。
@Component @ConfigurationProperties(prefix = "zzp") public class ZZPProperties { private String name; private String height; private String weight; private Integer age; @Override public String toString() { return "ZZPProperties{" + "name='" + name + '\'' + ", height='" + height + '\'' + ", weight='" + weight + '\'' + ", age=" + age + '}'; } //get set 方法 }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
之后我们再来写一个方法来获取这个实体类,并且将放回类型直接修改为该实体类吗,这样可以直接返回一个实体类出去,更方便了,代码也更为整洁
@Autowired private ZZPProperties zzpProperties; @RequestMapping(value = "/getZzpInfo",method = RequestMethod.GET) public ZZPProperties getZzpInfo(){ return zzpProperties; }1
2
3
4
5
6
7
测试一下结果
yml的其他用法
yml除了可以配置不同的属性值之外,还有其他许多用途,例如rand: str: ${random.value} #32位的随机字符串 uuid: ${random.uuid} #uuid num: ${random.int(100)} #100内随机整数 num0: ${random.int(0,99)} #0-99内的随机整数1
2
3
4
5
yml不同文件配置文件
我们还可以通过yml来为我们配置不同的配置文件,比如开发环境,测试环境,生产环境等等。我们使用application-dev.yml
application-test.yml
application-pro.yml
来进行区分,而在原始的application.yml中我们可以设定使用那一个环境
spring: profiles: active: prod
相关文章推荐
- SpringBoot开发详解(二)--SpringBoot的配置文件以及注解
- SpringBoot开发详解(二)--SpringBoot的配置文件以及注解
- SpringBoot开发详解(三)--SpringBoot配置文件YML注意事项
- SpringBoot开发详解(三)--SpringBoot配置文件YML注意事项
- Spring中的注入注解Resource/Autowired以及配置文件中default-autowire参数详解
- SpringBoot开发详解(三)--SpringBoot配置文件YML注意事项
- SpringBoot开发详解(三)--SpringBoot配置文件YML注意事项
- EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间
- Spring学习----------AOP以及Spring配置文件详解
- Servlet简介以及通过配置文件和注解两种方式部署Servlet
- java 高新技术【6】 反射开发框架以及用 类加载器 管理资源和配置文件
- 最近开发用的各种环境配置以及文件
- maven 开发环境搭建和配置文件详解
- Log4j 2.0在开发中的高级使用详解—配置简单的文件输出(四)
- WEB开发框架配置文件和各层注解
- EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间
- java 高新技术【6】 反射开发框架以及用 类加载器 管理资源和配置文件
- DELPHI下自定义包的作用,开发以及包文件的安装配置位置
- 告别繁琐的配置文件 ---- 全注解Spring,Hibernate开发 不完全指南
- j2ee项目开发web.xml文件加载及配置详解