在全局配置文件application.properties文件中配置以上的信息即可注入一个数据源到Spring Boot中。其实这仅仅是一种方式,下面介绍另外一种方式。
在自动配置类中DruidDataSourceAutoConfigure中有如下一段代码:
@Bean(initMethod = "init") @ConditionalOnMissingBean public DataSource dataSource() { LOGGER.info("Init DruidDataSource"); return new DruidDataSourceWrapper(); }@ConditionalOnMissingBean和@Bean这两个注解的结合,意味着我们可以覆盖,只需要提前在IOC中注入一个DataSource类型的Bean即可。
因此我们在自定义的配置类中定义如下配置即可:
/** * @Bean:向IOC容器中注入一个Bean * @ConfigurationProperties:使得配置文件中以spring.datasource为前缀的属性映射到Bean的属性中 * @return */ @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource dataSource(){ //做一些其他的自定义配置,比如密码加密等...... return new DruidDataSource(); }以上介绍了两种数据源的配置方式,第一种比较简单,第二种适合扩展,按需选择。
整合MybatisSpring Boot 整合Mybatis其实很简单,简单的几步就搞定,首先添加依赖:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>第二步找到自动配置类MybatisAutoConfiguration,有如下一行代码:
@EnableConfigurationProperties(MybatisProperties.class)老套路了,全局配置文件中配置前缀为mybatis的配置将会映射到该类中的属性。
可配置的东西很多,比如XML文件的位置、类型处理器等等,如下简单的配置:
mybatis.type-handlers-package=com.demo.typehandler mybatis.configuration.map-underscore-to-camel-case=true如果需要通过包扫描的方式注入Mapper,则需要在配置类上加入一个注解:@MapperScan,其中的value属性指定需要扫描的包。