• Spring Boot之底层注解


    一、@Configuration

    此注解有两种使用模式,默认情况下,是Full模式。

    (1).Full模式

    @Configuration(proxyBeanMethods = true)  
      • 配置类组件之间有依赖关系,方法会被调用得到之前单实例组件,用Full模式

    (2).Lite模式

    @Configuration(proxyBeanMethods = true)  
      • 配置 类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断
    /**
     * 1、配置类里面使用@Bean标注在方法上给容器注册组件,默认也是单实例的
     * 2、配置类本身也是组件
     * 3、proxyBeanMethods:代理bean的方法
     *      Full(proxyBeanMethods = true)、【保证每个@Bean方法被调用多少次返回的组件都是单实例的】
     *      Lite(proxyBeanMethods = false)【每个@Bean方法被调用多少次返回的组件都是新创建的】
     *
     */
    @Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
    public class MyConfig {
    
        /**
         * Full:外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实例对象
         * @return
         */
        @Bean //给容器中添加组件。以方法名作为组件的id。返回类型就是组件类型。返回的值,就是组件在容器中的实例
        public User user01(){
            User zhangsan = new User("zhangsan", 18);
            //user组件依赖了Pet组件
            zhangsan.setPet(tomcatPet());
            return zhangsan;
        }
    
        @Bean("tom")
        public Pet tomcatPet(){
            return new Pet("tomcat");
        }
    }

    二、@Bean、@Component、@Controller、@Service、@Repository、@Autowired 

    @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。

    @Component泛指各种组件

    @Controller控制器

    @Service业务逻辑层组件

    @Repository数据库层组件

    @Autowired 是我们使用得最多的注解,其实就是 autowire=byType 就是根据类型的自动注入依赖(基于注解的依赖注入),可以被使用再属性域,方法,构造函数上

    三、@ComponentScan、@Import

    @ComponentScan 通过包扫描指定

    @Import 引入

    四、@Conditional

    条件装配:满足Conditional指定的条件,则进行组件注入

    五、@ImportResource

    原生配置文件引入

  • 相关阅读:
    python的eval、exec函数使用总结
    sorted()&enumerate()
    递归
    作用域
    Python3 os.stat() 方法
    android 电容屏(一):电容屏基本原理篇
    Linux 2.6内核与Linux 3.0 的区别!
    struct device的成员变量bus_id到哪里去了?
    Linux内核中ioremap映射的透彻理解
    Android 通过串口模拟 模拟物理按键
  • 原文地址:https://www.cnblogs.com/xstcb/p/16000572.html
Copyright © 2020-2023  润新知