SpringBoot常用注解@Configuration

@Configuration

通过配置文件注入类,properties可以完成springboot大部分bea配置, 但是这不代表所有Bean能够被配置,这个时候需要用到@Configuration+@Bean或者@Configuration+@Component。@Configuration 注解类等价与 XML中配置 beans,用@Bean 注解方法等价于 XML 中配置 bean。

下面举例说明2中配置方法:

1. @Configuration+@Bean

  1.1BeanTest类:

public class BeanTest {

    private Logger logger = LoggerFactory.getLogger(BeanTest.class);

    public void test(){
        logger.info("BeanTest is going..........");
    }
}

 1.2 ConfigurationInfo类

@Configuration
public class ConfigurationInfo {

    private Logger logger = LoggerFactory.getLogger(ConfigurationInfo.class);

    public ConfigurationInfo(){
        logger.info("ConfigurationInfo with Configuration....");
    }

    @Bean
    public BeanTest testBean() {
        return new BeanTest();
    }
}

1.3 单元测试用例

    @Test
    public void testConfiguration(){
        logger.info("testConfiguration in.......");
        ApplicationContext context = new AnnotationConfigApplicationContext(ConfigurationInfo.class);
        BeanTest mBeanTest = (BeanTest) context.getBean("testBean");
        mBeanTest.test();
    }

1.4 测试结果:

2. @Configuration+@Component

2.1 BeanComponentTest类

@Component
public class BeanComponentTest {

    private Logger logger = LoggerFactory.getLogger(BeanComponentTest.class);

    public void test(){
        logger.info("BeanComponentTest is going..........");
    }
}

2.2 ConfigurationComponentInfo 类,要扫描Bean的位置

@Configuration
@ComponentScan(basePackages = "com.test.annotaton.bean")
public class ConfigurationComponentInfo {

    private Logger logger = LoggerFactory.getLogger(ConfigurationComponentInfo.class);

    public ConfigurationComponentInfo(){
        logger.info("ConfigurationComponentInfo with Configuration....");
    }

}

 2.3 单元测试类

    @Test
    public void testConfigComponent(){
        logger.info("testConfigComponent in.......");
        ApplicationContext context = new AnnotationConfigApplicationContext(ConfigurationComponentInfo.class);
        BeanComponentTest mBeanComponentTest = (BeanComponentTest) context.getBean("beanComponentTest");
        mBeanComponentTest.test();
    }

2.4 测试结果

发布了71 篇原创文章 · 获赞 1 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ccr1001ccr1001/article/details/88606275