一、有什么外部配置的可能来源?
SpringBoot 对外部配置提供了支持,允许我们在不同环境中运行相同的应用。我们可以使用 properties 文件、YAML 文件、环境变量、系统参数和命令行选项参数来声明配置属性。
然后我们可以通过 @Value 这个通过 @ConfigurationProperties 绑定的对象的注解或者实现 Enviroment 来访问这些属性。
以下是最常用的外部配置来源:
命令行属性:命令行选项参数是以双连字符(例如,=)开头的程序参数,例如 –server.port=8080。SpringBoot将所有参数转换为属性并且添加到环境属性当中。
应用属性:应用属性是指那些从 application.properties 文件或者其 YAML 副本中获得的属性。默认情况下,SpringBoot会从当前目录、classpath 根目录或者它们自身的 config 子目录下搜索该文件。
特定 profile 配置:特殊概要配置是从 application-{profile}.properties 文件或者自身的 YAML 副本。{profile} 占位符引用一个在用的 profile。这些文件与非特定配置文件位于相同的位置,并且优先于它们。
二、SpringBoot 支持松绑定代表什么?
SpringBoot中的松绑定适用于配置属性的类型安全绑定。使用松绑定,环境属性的键不需要与属性名完全匹配。这样就可以用驼峰式、短横线式、蛇形式或者下划线分割来命名。
例如,在一个有 @ConfigurationProperties 声明的 bean 类中带有一个名为 myProp 的属性,它可以绑定到以下任何一个参数中,myProp、 my-prop、my_prop 或者 MY_PROP。
三、【烟幕弹】配置文件是yaml格式,这种格式你喜欢么?
答: 比较喜欢properties格式,感觉yml格式的配置文件缩进比较难处理。比如当我从网上拷贝一些别人长长的配置文件,可能要花较多时间整理文件格式。
四、【动手能力】这么喜欢properties方式,能够写一段代码,将yml翻译成properties么?
yaml:
student:
name: 张三
hobby: [eat,drink,play,happy]
properties:
student.name=张三
student.hobby[0]=eat
student.hobby[1]=drink
student.hobby[2]=play
student.hobby[3]=happy
五、是否可以在Spring boot中更改嵌入式Tomcat服务器的端口?
是的,更改端口是可行的。可以使用application.properties文件更改端口。但需要提到“server.port”(即server.port=8081)。确保项目类路径中有application.properties;后续工作将由REST Spring框架接手。如果提到server.port=0,那么它将自动分配任何可用的端口。
本文介绍了SpringBoot中的外部配置来源,包括命令行属性、应用属性及特定profile配置等,并解释了松绑定的概念及其如何提高配置灵活性。同时,文章还讨论了如何修改嵌入式Tomcat服务器的端口。
3万+

被折叠的 条评论
为什么被折叠?



