• spring 组件注册


    一、声明配置类和注册 bean

    /**
     * 配置类 == applicationContext.xml 配置文件
     * @author Administrator
     *
     */
    //@Configuration 告诉 spring 这是一个配置类
    @Configuration  
    //@ComponentScan:value 配置扫描的包;excludeFilters 按照一定规则排除包;includeFilters 只包含
    //excludeFilters = {@Filter(type = FilterType.ANNOTATION,classes={Controller.class})}
    @ComponentScan(value = "com.fw",includeFilters = {
            @Filter(type = FilterType.ANNOTATION,classes={Controller.class})
    },useDefaultFilters = false)    
    public class MainConfig {
        
        @Bean("person")    //给容器中注册一个 Bean;类型为返回值的类型,id 默认以方法名作为 id
        public Person person(){
            return new Person("lisi", 18);
        }
    }

    二、通过配置类创建 spring 容器

    @Testpublic void test1(){
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
        Person person = applicationContext.getBean(Person.class);
        System.out.println(person);
    }

    三、@Scope 指定bean的作用域

    /**
     * @Scope:
     * prototype:多实例的:ioc 容器在启动的时候并不会调用方法创建对象,而是每次获取的时候才会去调用方法
     * singleton:单实例的:默认值,ioc 容器在启动的时候就会调用这个方法去创建对象,以后每次获取对象直接从容器中拿
     */
    @Scope("singleton")
    @Bean("person")
    public Person person(){
        return new Person("lisi", 18);
    }

     四、@Lazy 懒加载

    /**
     * @Lazy:懒加载:只针对单实例 @Scope("singleton")
     *         单实例的 bean:默认在容器启动的时候创建对象
     *         懒加载:容器启动的时候不创建对象.而是在第一次使用(获取)bean 的时候才创建对象,并初始化
     */
    //@Scope("singleton")
    @Lazy
    @Bean("person")
    public Person person(){
        return new Person("lisi", 18);
    }

    五、 

  • 相关阅读:
    Map集合的四种遍历
    java 请求 google translate
    Linux 内核初级管理
    Linux GRUB
    Linux 系统启动流程
    Linux 任务计划 crontab
    Linux 进程管理工具
    Linux sudo实作
    Linux 进程管理
    Linux 网络配置命令:ip、ss
  • 原文地址:https://www.cnblogs.com/fangwu/p/8675593.html
Copyright © 2020-2023  润新知