Web —三方集成

一、配置优先级

1.配置文件

        properties > yml > yaml

2.属性配置优先级

        命令行参数(--xxx=xxx)> Java系统属性 (-Dxxx=xxx)> properties > yml > yaml

        注意事项

        虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置

(yml是主流)。

二、Bean管理

1.第三方Bean

        1.1 @Bean注解

        如果要管理的对象来自于第三方(不是自定义的),是无法用 @Component 及衍生注解来声

明bean的,就需要用到 @Bean注解

@Configuration
public class CommonConfig {
    @Bean
    public BASE64Encoder base64Encoder() {
        return new BASE64Encoder();
    }
}

        注意事项:

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

       1.2  @Component 及衍生注解 与 @Bean注解使用场景?

        项目中自定义的,使用@Component注解

        项目中引入第三方的,使用@Bean注解

2.获取bean

        Spring容器启动时,会把其中的bean都创建好,如果想要主动获取这些bean,可以通过如下

方式:

        根据类型获取bean                  <T> T getBean(Class<T> requiredType)

        根据name获取bean                Object getBean(String name)

        根据name获取bean(带类型转换)   <T> T getBean(String name, Class<T> requiredType)

注意事项

       上述所说的 【Spring容器启动时,会把其中的bean都创建好】还会受到作用域scope及延迟初始化lazy影响,这里主要针对于 默认的单例非延迟加载的bean而言。

3.bean作用域

Spring支持五种作用域,后三种在web环境才生效:

可以通过 @Scope 注解来进行配置作用域

注意事项:

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

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

三、Spring自动配置原理

        1.自动配置

        SpringBoot的自动配置就是当spring容器启动后,一些配置类就自动装配到IOC容器中,不

需要我们手动去声明,从而简化了开发,省去了繁琐的配置等操作。

        2.自动配置原理

            2.1 @Conditional

        — 作用:按照一定的条件进行判断,需要声明的Bean,在满足给定条件后才会注册到Spring

IOC容器中。

        —  @Conditional 本身还是一个父注解,派生出大量的子注解:

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

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

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

        2.2 @Import

       —  作用:导入的bean 和 配置类会被Spring加载到IOC容器中。

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

        bean

        配置类

        mportSelectorsors接口子类

        

        2.3 原理

        @SpringBootApplication 该注解标识在SpringBoot工程引导类上,是SpringBoot中最最最重

要的注解。该注解由三个部分组成:

        — @SpringBootConfiguration:该注解与 @Configuration 注解作用相同,用来声明当前也是一个配置类。

        — @ComponentScan:组件扫描,默认扫描当前引导类所在包及其子包。

       — @EnableAutoConfiguration(@Import):SpringBoot实现自动化配置的核心注解。

        3.自定义starter

        在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项

目中,一般会将这些公共组件封装为SpringBoot 的 starter,传到maven的远程仓库(私服)中。

将来引入对应坐标依赖,即可快速使用这些功能。

 

        

 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值