配置類一@Configuration


import org.springframework.context.annotation.Configuration;

@Configuration用於定義配置類,可替換xml配置文件,被注解的類內部包含有一個或多個被@Bean注解的方法,這些方法將會被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext類進行掃描,並
用於構建bean定義,初始化Spring容器

Spring Boot不需要在xml配置注解掃描,需要你保證你的啟動Spring Boot main入口,在這些類的上層包就行。

  • @Configuation等價於<Beans></Beans>
  • @Bean等價於<Bean></Bean>
@Configuration  
public class ExampleConfiguration {  
  
    @Value("com.mysql.jdbc.Driver")  
    private String driverClassName;  
  
    @Value("jdbc://xxxx.xx.xxx/xx")  
    private String driverUrl;  
  
    @Value("root")  
    private String driverUsername;  
  
    @Value("123456")  
    private String driverPassword;  
  
    @Bean(name = "dataSource")  
    public DataSource dataSource() {  
        BasicDataSource dataSource = new BasicDataSource();  
        dataSource.setDriverClassName(driverClassName);  
        dataSource.setUrl(driverUrl);  
        dataSource.setUsername(driverUsername);  
        dataSource.setPassword(driverPassword);  
        return dataSource;  
    }  
  
    @Bean  
    public PlatformTransactionManager transactionManager() {  
        return new DataSourceTransactionManager(dataSource());  
    }  
  
}

@Autowired
private DataSource dataSource;

這個dataSource就是我們在ExampleConfiguration中配的DataSource

@Component注解也會當做配置類,但是並不會為其生成CGLIB代理Class,所以執行了兩次new操作,所以是不同的對象。當時@Configuration注解時,生成當前對象的子類Class,並對方法攔截,第二次new時直接從BeanFactory之中獲取對象,所以得到的是同一個對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM