1

我正在使用 Spring Boot 开发一个新应用程序。我使用 Mybatis 进行持久化。我尽我所能使用 Java Config。

当应用程序开始创建 Mybatis 映射器界面时,我收到此异常

exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

我的 Sring Boot 应用程序类是这样设置的

@SpringBootApplication
@MapperScan("com.mydomain.admin.service.dao")
public class AdminApplication {

public static void main(String[] args) {
    SpringApplication.run(AdminApplication.class, args);
}
}

Mybatis的mapper接口类是这样设置的

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.* 所以 spring boot 可以自动配置数据源

现在,我想知道我是否假设了太多的弹簧靴魔法。我假设spring boot会配置sqlSessionFactory,因为mybatis在类路径中..

我看到的许多示例都显示在 Java Config 中将 sqlSessionFactory 配置为 @Bean。这是应该做的方式是 spring boot 是否应该做一些魔术并自动配置它?

4

2 回答 2

1

我发现了我的问题。我错过了 mybatis-spring-boot-starter

于 2016-02-24T18:45:27.107 回答
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 的人有所帮助。*

于 2017-04-09T12:27:40.733 回答