SpringBoot开发详解(二)--SpringBoot的配置文件以及注解

原文链接:http://blog.csdn.net/qq_31001665

如有侵权,请联系博主删除博客,谢谢

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: 9090
 
 
  • 1
  • 2

这里写图片描述
这里要注意的是yml这种文件的格式,每一个属性下的节点需要缩进,再一个是赋值需要在冒号后留一个空格的位置,一般我通常看idea的颜色变化,橘黄色代表格式正确,灰色则是格式有问题,修改完端口后我们再启动下项目,发现端口已经变更为9090了,说明配置文件生效了。 
这里写图片描述

自定义属性以及@Value取值

除了我们一般使用yml来定义一些我们需要的属性外yml还支持自定义属性,在使用时只需要通过@Value来取值即可。那我们现在yml中添加一些属性。

zzp:
  name: 朱正平
  age: 27
  height: 182cm
  weight: 75kg
  long: 18cm
 
 
  • 1
  • 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
 
 
  • 1
  • 2
  • 3

今天我们就聊到这,主要是因为我饿了,想去吃烤串了,下次我们再来聊一下在Spring Boot中使用jdbc吧。

所有的代码我已经上传到GitHub

round1-springboot

如果心急的小伙伴也可以去clone我已经完成的项目,这个项目中把一些常用功能都写了,并且都写注释啦!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值