我正在尝试为MyBatis设置Java配置,并且@MapperScan似乎没有完成任何事情。注意,我可以使该应用程序与XML配置一起使用。
我想念什么? com.test.mapper软件包确实存在并且具有名为TestMapper的文件/接口。相应的xml位于资源文件夹中的正确位置。
********************************应用程序无法启动
说明:
字段templateMapper在 com.test.TestController需要一个 'com.test.mapper.TestMapper'类型的bean 找不到。
操作:
考虑定义一个类型的bean 您的“ com.test.mapper.TestMapper” 配置。
自动接线失败
@Autowired
TestMapper _testMapper;
配置
@Configuration
@MapperScan("com.test.mapper")
public class AppConfig {
@Bean
public DataSource dataSource() {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
try {
dataSource.setDriverClass(com.microsoft.sqlserver.jdbc.SQLServerDriver.class);
//dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl("jdbc:sqlserver://server;databaseName=db1;integratedSecurity=true;");
} catch (Exception e) {
}
return dataSource;
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setTypeAliasesPackage("com.test.domain");
sqlSessionFactoryBean.setDataSource(dataSource());
return sqlSessionFactoryBean;
}
}
答案 0 :(得分:0)
我解决了这个问题。我的问题与Mybatis无关。是在春天。 Spring文档的This link说:“ ...将主应用程序类放在其他类之上的根包中”。
我没有那样做。一旦我移动了应用程序类(用SpringBootApplication注释),那么@MapperScan注释就起作用了。