SprintBoot学习日记(二)—— 属性配置管理

我们已经建立好了项目,也成功run起来了。

现在我们可以想想,开发一个web程序,一定会有很多是属性需要配置,如数据库地址、用户名、服务器端口号,日志的打印配置等等;而且有开发经验的朋友 也会知道一套程序 会有多个环境(如开发环境、测试环境、准生产环境、生产环境),不同环境的数据库等属性也是不同的。 

好的,这次我就开始玩一些springboot的属性配置

我们先看一下项目结构,发现新建项目后 我们会有一个 application.properties,如图


这个application.properties 就可以帮助我们实现属性的配置。我们先简单的修改一下端口号以及虚拟路径。

这里我们设置属性时,输入前几位 是有提示的,很方便


我这里的配置如下,然后我们restart项目



扫描二维码关注公众号,回复: 2213666 查看本文章

这里我们看到已经修改成功。但是这样修改配置,看起来是不是有点累,一个server 就有好多属性 ,后续再配置数据库连接等属性 ,更加混乱。  所以呢这里我们可以换一种写法,*.yml文件。可以清楚的看到server 有2个属性,port 和path,跟之前比,是不是跟清晰了呢 。



接下来,我们配置了属性 该如何在程序中加载使用这些属性呢。我们先学习一下@value 的用法。


可以看到我们成功获取配置的属性。

但是我们又会发现,我这里只是写了2个属性就觉得繁琐了,如果对方有10个 、8个属性,对我这种懒人来说,那还不得崩溃了。

所以接下来 我们采用关系映射的方式 并依赖注入 ,获取配置属性。我这里新建了个包为config,并新建ServerConfig类,与属性配置的server进行映射;这里我用了三个注解,首先

@Component

表明为组件 ,可以实现依赖注入;

@ConfigurationProperties(prefix = "server"

表明是加载前缀是server的属性,

@Data

lombok 实现get set等方法

需要注意类里面 我们定义的是

contextPath 和 属性中 context-path 对应。


重新运行,成功!  这样我们就实现了一个对象 管理属性配置中对应对象的所有属性



文章开头,我们也提到了多环境的问题,那么怎么实现呢。

我另外复制2个yml文件,dev环境和prod环境



dev 环境配置端口8080  prod环境配置8090


并在主yml中指定环境版本


restart项目 ,发现切到dev环境后,8080可以正常访问、8090就不能;如果想切到prod环境,也只需要在主yml 文件中,dev 换成prod 即可。

这样就实现了环境的快速切换。也方便日后的打包和部署。

另外把项目分享到GitHub上,也方便参考

https://github.com/SimonVampire/springboot-study.git


猜你喜欢

转载自blog.csdn.net/zx03070723/article/details/80148142