我正在使用Spring Boot开发一个新的应用程序。我使用Mybatis来保持持久性。我尽我所能使用Java Config。
当应用开始创建我的Mybatis映射器界面时,我收到此异常
exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
My Sring Boot应用程序类设置如下
@SpringBootApplication
@MapperScan("com.mydomain.admin.service.dao")
public class AdminApplication {
public static void main(String[] args) {
SpringApplication.run(AdminApplication.class, args);
}
}
Mybatis映射器接口类设置如下
package com.mydomain.admin.service.dao;
public interface AdminClientDAO {
@Select("SELECT clientId, name, enabledFlag as enabled, dateAdded, dateUpdated as updateDate FROM client")
public List<Client> findAll();
}
我的数据源配置了spring boot。我已经命名了这些属性 spring.datasource。* so spring boot with auto-configure the data source
现在,我想知道我是否假设过多的春季启动魔法。我假设spring boot会配置sqlSessionFactory,因为mybatis在classpath中..
我看到的许多示例都显示了在Java Config中将sqlSessionFactory配置为@Bean。这是应该完成的方式,应该是spring boot是否应该做一些魔术并自动配置它?
答案 0 :(得分:1)
我有
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
}
在名为Application.java的类中扩展
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
我的Application.java在扩展
的类中初始化org.springframework.boot.context.web.SpringBootServletInitializer
数据源在我的Spring-Boot应用程序中运行良好。 希望这有助于有人在spring.datasource中使用数据源搜索Spring Boot,Mybatis和SQLSessionFactory。*
答案 1 :(得分:0)
我发现了我的问题。我错过了mybatis-spring-boot-starter