spring 组件注册

Posted 方方方方方方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}

 

五、 

 

以上是关于spring 组件注册的主要内容,如果未能解决你的问题,请参考以下文章

spring注解-组件注册

Spring Framework 组件注册 之 @Import

spring注解之组件注册

spring注解-组件注册

Spring注解之组件注册

spring 注解驱动开发组件注册