美文网首页
关于@Configuration和@Bean的用法和理解

关于@Configuration和@Bean的用法和理解

作者: Renky | 来源:发表于2017-08-01 09:33 被阅读0次

    在Spring Boot中提倡约定优于配置,所以我们将演示下如何将说明一个配置类并把配置类生命周期交给Spring来管理!

    @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());    
        }   
    }  
    

    @Configuration可理解为用spring的时候xml里面的<beans>标签。

    @Bean可理解为用spring的时候xml里面的<bean>标签。

    Spring Boot不是spring的加强版,所以@Configuration和@Bean同样可以用在普通的spring项目中,而不是Spring Boot特有的,只是在spring用的时候,注意加上扫包配置。

    <context:component-scan base-package="com.xxx.xxx" />,普通的spring项目好多注解都需要扫包,才有用,有时候自己注解用的挺6,但不起效果,就要注意这点。
    Spring Boot则不需要,主要你保证你的启动Spring Boot main入口,在这些类的上层包就行。

    最后,@Autowired
    private DataSource dataSource;的时候,这个dataSource就是我们在ExampleConfiguration中配的DataSource。

    相关文章

      网友评论

          本文标题:关于@Configuration和@Bean的用法和理解

          本文链接:https://www.haomeiwen.com/subject/clodlxtx.html