说明
目前在运营一个个人的公众号, 感兴趣可以扫码关注, 一起成长吧.
今天想把ssm框架整合后的xml文件都去掉, 因为看到配置文件中需要配置一个Bean去扫描全部的mapper接口.
xml中配置如下:
<!-- 扫描所有mapper接口文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.incisor.dao"/>
</bean>
&emps;修改成零配置方式后, 就想着用@Bean来创建一个MapperScannerConfigurer的对象.
Java Config类如下:
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.io.IOException;
/**
* ClassName: AppConfig
* Author: zhoubihui
* Date: 2019-08-29 17:53
* Version: 1.0
* Description: 替换applicationContext.xml
**/
@Configuration
@ComponentScan(basePackages = {
"cn.incisor.service"})
@PropertySource(value = "classpath:jdbc.properties")
@EnableTransactionManagement
@EnableAspectJAutoProxy
public class AppConfig {
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.driverClassName}")
private String driverClassName;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean(name = "dataSource", initMethod = "init", destroyMethod = "close")
public DruidDataSource getDataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
@Bean(name = "sqlSessionFactory")
public SqlSessionFactoryBean getSqlSessionFactory(@Qualifier("dataSource"