目录
2023年7月27日
9.如何在自定义端口上运行Spring Boot 应用程序?
1.什么是Spring Boot?
Spring Boot是一款基于spring框架的开源框架,它简化了spring应用程序的开发和部署,同时提供了一种更简洁,快速的方式来构建基于spring的应用程序。Spring Boot通过提供自动化配置,快速开发等特性,可以使开发人员专注于业务逻辑的开发而不必过多关注框架本身的配置和细节。同时,Spring Boot还提供了一些开箱即用的功能,比如安全认证,事务管理,缓存等,未开发人员提供了更高效和更优秀的开发体验。
2.Spring Boot有哪些优点?
- 快速开发,易上手
- 开箱即用,远离繁琐的配置文件
- 提供了一些大型项目的非业务功能,如:内嵌服务器,安全管理,运行数据监控,运行状况检查和外部化配置。
- 自动配置 Spring,没有代码生成,也不需要XML配置文件。
- 简化 Maven 配置,避免大量的maven导入和依赖冲突。
-
创建独立的 Spring 应用程序
3.Spring Boot的核心注解是哪个?
启动类的注解@SpringBootApplication是核心注解,主要包含以下3个注解:
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源 自动配置功能: @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })。
- @ComponentScan:Spring组件扫描。
4.什么是JavaConfig配置?
JavaConfig是spring社区的产品,它提供了spring IOC容器的纯java方法。因此它有助于避免XML配置。它的优点在于:
- 面向对象的配置。由于配置被定义为javaConfig配置,因此用户可以充分利用java中的面向对象功能,一个配置类可以继承另一个类,重写它的@Bean方法。
- 减少或消除XML配置。基于依赖注入原则。
- 类型安全和重构友好。由于java5.0对泛型的支持,现在可以按照类型而不是名称检索Bean,不需要任何强制转换或基于字符串的查找。
5.Spring Boot的自动配置原理。
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,
@EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类。 筛选有效的自动配置类。
总之,Spring Boot 的自动配置是通过条件注解和 Spring Boot Starter 的机制实现的。它的基本原理是根据条件判断自动配置 Bean 和其他组件,避免了手动配置的繁琐和错误,提高了开发效率。
6.你如何理解Spring Boot配置的加载顺序。
- properties配置文件
- yaml文件
- 系统环境变量
7.YAML 配置的优势在哪里 ?
- 配置有序:在一些特定的场景,配置顺序很重要
- 支持数组:数组中的类型可以是基本数据类型也可以是对象
- 简洁
注:相比 properties 配置文件,YAML 还有一个缺点,就是不支持 @PropertySource 注解导入自定义的 YAML 配置。
8.Spring Boot可以使用XML配配置吗?
Spring Boot推荐使用Java配置,但是也可以使用xml配置,需要使用@ImportResource注解来引入一个xml配置。
spring boot的核心配置文件:
bootstrap.properties和application.properties
区别:
单纯做spring boot开发不会遇到bootstrap.properties,但在结合spring cloud时,会遇到。
bootstrap.properties是由父ApplicationContext加载的,比application优先加载,配置在应用上下文的引导阶段生效。且bootstarp里的属性不能被覆盖。
application.properties由ApplicationContext加载,用于spring boot项目的自动化配置。
9.如何在自定义端口上运行Spring Boot 应用程序?
为了在自定义端口上运行 Spring Boot 应用程序,您可以在application.properties 中指定端口:server.port = 8090