1.SpringBoot中配置文件的优先级?
同一个属性,可以通过五种形式来进行配置。
五种配置方式:(优先级由低到高)
- application.yaml
- application.yml
- application.properties
- Java系统属性(-Dxxxx=xxxx)
- 命令行参数(–xxxx=xxxx)
2.SpringBoot中配置端口有哪些方式,优先级是怎样的?
1).application.properties
server.port=8080
2).application.yml(主流)
server:
port: 8081
3). application.yaml
server:
port: 8082
4). Java系统属性配置
-Dserver.port=9000
5). 命令行参数配置
--server.port=10010
6).执行java命令,运行jar包
java -Dserver.port=9000 -jar tlias-web-management-0.0.1-SNAPSHOT.jar --server.port=10010
3.能够说出bean的两种常见的作用域及如何设置作用域?
Singleton(单例)作用域:
- 单例作用域是默认的作用域,每次从Spring容器获取该Bean时,都会返回同一个实例对象。
- 在单例作用域下,Spring容器只会创建一个实例,并将该实例缓存起来,以供后续的请求使用。
- 可以使用@Scope(“singleton”)注解或者不声明任何注解来指定Bean为单例作用域。
Prototype(原型)作用域:
- 原型作用域表示每次从Spring容器获取该Bean时,都会创建一个新的实例对象。
- 在原型作用域下,Spring容器每次都会通过调用构造函数创建一个新的实例对象,而不会对实例进行缓存或重用。
- 可以使用@Scope(“prototype”)注解来指定Bean为原型作用域。
设置作用域的方式:
- 使用注解:可以直接在Bean的声明处通过@Scope注解来设置作用域,如@Scope(“singleton”)或@Scope(“prototype”)。
- XML配置:可以在Spring配置文件中为Bean设置作用域,使用标签的scope属性,如scope="singleton"或scope=“prototype”。
- 配置类:如果使用Java配置来定义Bean,可以在配置类的@Bean方法上使用@Scope注解进行设置,如@Scope(“singleton”)或@Scope(“prototype”)。
注意事项:
- 默认singleton的bean,在容器启动时被创建。
- prototype的bean,每一次使用该bean的时候,都会创建一个新的实例。
4.怎么使用@Bean注解来管理第三方bean
1.先将第三方Bean导入到项目中。可以通过依赖管理工具(比如Maven或Gradle)将第三方库添加到项目的构建配置中。
2.在配置类中使用@Bean注解来声明一个方法,返回第三方Bean的实例。可以在该方法中对第三方Bean进行初始化和配置。
5.@Conditional注解和@Import注解的作用是什么?
@Conditional注解
- 作用:根据指定的条件来判断是否需要加载或配置某个Bean或组件。可以提高应用程序的可配置性和灵活性。
//@Conditional注解通常用于配置类中的@Bean方法上,用于根据条件来判断是否需要创建并注册该方法返回的Bean
@Configuration
public class AppConfig {
@Bean
@Conditional(DatabaseTypeCondition.class) // 根据数据库类型条件判断是否创建该Bean
public DataSource dataSource() {
// 配置并返回数据源
}
}
@Import注解
- 作用:用于导入其他的配置类或者组件。实现在当前类中使用这些已导入的配置或组件,这样可以提高代码的模块化和复用性
//在使用@Import注解时,可以传入一个或多个配置类作为参数,也可以传入其他的注解类,实现对该注解类中定义的配置的导入。
//具体实现上,@Import注解可以放在配置类上,用于导入其他配置类
@Configuration
@Import({ConfigA.class, ConfigB.class})
public class AppConfig {
// ...
}
6.简要的说出springboot自动配置的原理?
原理:
在应用程序启动时,Spring Boot会自动扫描classpath下的META-INF/spring.factories文件,并加载其中的自动配置类。根据条件注解的判断,Spring Boot会自动选择合适的自动配置类,并创建相应的Bean
好处:
Spring Boot能够在应用程序启动时自动完成各种功能的配置和装配,大大简化了开发者的工作量。开发者只需引入相应的Starter依赖,并配置一些必要的属性,即可快速构建一个功能完备的Spring Boot应用程序。