Spring boot 切换配置文件到yaml

最近公司在逐步将线上服务进行拆分,自然而然就使用了Spring 家族殿堂级的微服务框架--spring boot ,它抛弃了spring 中繁琐的xml配置文件的方式,声明式注解的方法为服务开发提供快速简洁的配置方式。在spring boot 中,我们会发现,我们其实不用做一些基本的配置也能直接运行刚创建好的工程项目,因为它内嵌了很多基本的通用的配置组件而不需要我们自己来做一些重复的配置工作。

在spring boot 中,我们可以通过properties或者yaml文件来为应用程序添加自定义的配置信息。以redis的配置信息为例:

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.timeout=5000

可以在redis.properites文件中编写如上信息,然后在redisconfig类中通过@PropertySource(value="classpath:redis.property")来注入配置文件信息,然后通过如下方式注入到bean的对应的属性中

@Value("spring.redis.host")
  private String host;
  @Value("spring.redis.port")
  private int port;
  @Value("spring.redis.timeout")
  private int timeout;
但这种方式还是过于累赘,实际上我们可以通过引入yaml文件(类似于json的结构)进行配置,在新建spring boot 项目时会自动引入snakeyaml,从而自动实现对yaml的支持。我们只需要进行如下配置即可:

application.yaml

redis:
  host: 127.0.0.1
  port: 6379
  timeout: 5000

新建一个RedisSettings的bean:

@Component
@Data
@ConfigurationProperties(prefix = "redis")
public class RedisSettings {
  private String host;
  private int port;
  private int timeout;

}
最后在使用的入口注入即可

 @Autowired
  private RedisSettings redisSettings;

总结:

即使是通过配置文件的使用,我们都能发现spring boot 的简洁方便。可谓是给那些批评java太重的人一次有力的抨击






 
  

你可能感兴趣的:(java,spring,spring,boot)