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