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 測試結果

發佈了74 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章