「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」。
1.描述Spring-boot-maven-plugin插件作用
spring-boot-maven-plugin 插件以Maven的方式为Springboot应用提供支持,能够将Springboot应用打包为可执行的jar或war文件,进行相应部署后即可启动Springboot应用。
2.SpringBoot读取配置文件的方式,分别是什么?
1、@Value 注解
2、@ConfigurationProperties 和 @EnableConfigurationProperties(@Compent)
3、@PropertySource
4、Environment
5、PropertySourcesPlaceholderConfigurer
6、自己写一个静态读取的配置文件的工具类(包括 jar 包外的配置文件,与SpringBoot读取的配置文件一致)
3.SpringBoot加载配置文件的顺序?如果配置文件有相同的配置属性,该如何处理?
- @TestPropertySource 注解
- 命令行参数
- Java系统属性(System.getProperties())
- 操作系统环境变量
- 只有在random.*里包含的属性会产生一个RandomValuePropertySource
- 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
- 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
- 在@Configuration类上的@PropertySource注解
- 默认属性(使用SpringApplication.setDefaultProperties指定)
当无spring.profiles.active 时, 先读取到的属性会先生效。 当有spring.profiles.active 时,配置了相同属性时是profiles上的配置生效。例如:file:./config/上的yml配置了端口 8080 但是存在 spring.profiles.active属性 dev;然后我们在dev上也配置来一个端口 8081.此时生效的为8081.
4.SpringBoot如何自定义异常?描述相关注解
1、自定义异常处理类,使用@ControllerAdvice或者@RestControllerAdvice如果全部异常处理返回json,那么可以使用 @RestControllerAdvice 代替 @ControllerAdvice ,这样在方法上就可以不需要添加 @ResponseBody拦
2、类中方法使用@ExceptionHandler(value = Exception.class)来捕获指定异常
3、对捕获到的异常进行处理
5.描述HTTP常用状态码
200 请求成功
400 客户端方面的问题,服务器无法识别请求
405 请求中所指定的方法不被允许
404 请求的资源(网页等)不存在
500 内部服务器错误
6. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
嵌入式服务器就是我们的可执行单元包含服务器的二进制文件(例如,tomcat.jar)。
首先,如果在虚拟机上部署应用程序所需步骤:
第一步: 安装 Java
第二部: 安装 Web 或者是应用程序的服务器(Tomat/Wbesphere/Weblogic 等等)
第三部: 部署应用程序 war 包
嵌入式服务器的起源思想:只需要一个安装了 Java 的虚拟机,就可以直接在上面部署应用程序了,当我们创建一个可以部署的应用程序的时候,我们将会把服务器(例如,tomcat)嵌入到可部署的服务器中。