mybatis @MapperScan无法正常工作

时间:2018-07-11 20:25:05

标签: java mybatis spring-mybatis

我正在尝试为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;
   }
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我的问题与Mybatis无关。是在春天。 Spring文档的This link说:“ ...将主应用程序类放在其他类之上的根包中”。

我没有那样做。一旦我移动了应用程序类(用SpringBootApplication注释),那么@MapperScan注释就起作用了。