spring Boot提倡約定優於配置,如何將類的生命周期交給spring
1、第一種自己寫的類,Controller,Service。 用@controller @service即可
2、第二種,集成其它框架,比如集成shiro權限框架,集成mybatis分頁插件PageHelper,第三方框架的核心類都要交於Spring大管家管理
@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入口,在這些類的上層包就行
就像這樣,DemoApplication是啟動類,關於啟動類的位置放置,在另一篇博客有專門的去分析。
@Configuration和@Bean的Demo類
- @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