7.你如何理解 Spring Boot 中的 Starters?
Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要
到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用
了。
8.Spring Boot 是否可以使用 XML 配置 ?
Spring Boot 推荐使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通过 @ImportResource 注解
可以引入一个 XML 配置。
9.bootstrap.properties 和 application.properties 有何区别 ?
a、单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合 Spring Cloud 时,这个配置就
会经常遇到了,特别是在需要加载一些远程配置文件的时侯。bootstrap.properties 在 application.properties 之前加载,配
置在应用程序上下文的引导阶段生效。
b、一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。bootstrap.properties 被 Spring ApplicationContext 的
父类加载,这个类先于加载 application.properties 的 ApplicatonContext 启动。当然,前面叙述中的 properties 也可以修改
为 yaml 。
10.自动装配的原理
@EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector,其核心逻辑为selectImports方法, 逻辑
大致如下:
从spring-boot-autoconfigure包下的META-INF/spring.factories文件中加载所有可能用到的自动配置类;
去重,并将exclude和excludeName属性携带的类排除;
过滤,将满足条件(@Conditional)的自动配置类返回;
11.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式 tomcat将重新启动。Spring Boot 有一个开
发 工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器 并
自动重启服务器。开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需
要。Spring Boot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需
求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用程序。
server.port = 8090
1 <dependency>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-devtools</artifactId>
4 <optional>true</optional>
5 </dependency>
12.如何在自定义端口上运行 Spring Boot 应用程序?
为了在自定义端口上运行 Spring Boot 应用程序,您可以在 application.properties 中指定端口。
server.port = 8090