三方集成自动配置

配置方式

application.properties

application.yml

application.yaml

Java系统属性配置  -Dserver.port=9000

命令行参数配置 --server.port=10010

在jar包里进行配置

java -Dserver.port=9000 -jar tlias-web-management-0.0.1-SNAPSHOT.jar --server.port=10010

配置优先级(低到高)

  • application.yaml
  • application.yml
  • application.properties
  • Java系统属性(-Dxxxx=xxxx)
  • 命令行参数(--xxxx=xxxx)

优先级低的先加载,优先级高的后加载,后加载的会把先加载的给覆盖掉

Bean管理

第三方Bean

如果要管理的对象是来自于第三方的(不是自定义的),是无法直接使用 @Component 及衍生注解来声明 bean 对象的,就需要用到 @Bean注解。

如果第三方 bean 比较多,建议对这些bean进行集中分类,可以通过 @Configuration 注解声明一个配置类。

注意事项:通过 @Bean 注解的name属性 或 value 属性可以声明 bean 的名称,如果不指定,默认bean的名称就是方法名。

获取bean

根据类型获取 bean

根据 指定bean名称获取 bean 

根据 指定bean名称和bean类型获取(带类型转换)

@SpringBootTest
class SpringbootThirdbeanApplicationTests {
	
    @Autowired
    private ApplicationContext context;
	
    @Test
    public void testGetBean(){
		DeptController deptController = applicationContext.getBean(DeptController.class);
         System.out.println(deptController);
        
         	
         Object object = applicationContext.getBean("deptController");
         System.out.println(object);
        
         DeptController deptController2 = applicationContext.getBean("deptController", DeptController.class);
         System.out.println(deptController2);
    }
	
}

bean的作用域

常用作用域,作用域要和@Scope注解来进行配置

singleton

容器内同 id 的 bean 只有一个实例(单例)(默认)

prototype

每次使用该  bean 时会创建新的实例(非单例)

默认singleton的bean,在容器启动时被创建。

prototype的bean,每一次使用该bean的时候,都会创建一个新的实例。

自动配置

SpringBoot的自动配置就是当spring容器启动后,一些配置类就自动装配的IOC容器中,不需要我们手动去声明。

@Conditional

@Conditional 本身还是一个父注解,派生出大量的子注解,用来判断当达成某一条件后,才加载对应的Bean。

@ConditionalOnClass:判断环境中是否有对应字节码文件,才注册bean到IOC容器。

@ConditionalOnClass(name = "io.jsonwebtoken.Jwts")

@ConditionalOnProperty:判断配置文件中是否有对应属性和值,才注册bean到IOC容器。

@ConditionalOnProperty(name = "secret",havingValue = "itheima")

@ConditionalOnMissingBean:判断环境中没有对应的bean ,才注册bean到IOC容器。

 @ConditionalOnMissingBean(name = "empController")

@Import

用于导入一些Bean 和 配置类到IOC容器中。

@Import注解主要可以导入形式有以下几种:

  1. Bean
  2. 配置类
  3. ImportSelector接口子类

SpringBoot自动配置的原理?

 

@SpringBootConfiguration:引导类也是一个配置类

@ComponentScan:包扫描

@EnableAutoConfiguration:自动配置。底层为:@Import(AutoConfigurationImportSelector.class),通过@Import导入配置类

 

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值