Spring Boot 外部配置相关面试题

本文介绍了SpringBoot中的外部配置来源,包括命令行属性、应用属性及特定profile配置等,并解释了松绑定的概念及其如何提高配置灵活性。同时,文章还讨论了如何修改嵌入式Tomcat服务器的端口。

一、有什么外部配置的可能来源?

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,那么它将自动分配任何可用的端口。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值