У меня есть следующий класс, но Spring и MyBatis-Spring-Boot-Starter не будут автоматически подключать мой маппер.
Когда я запускаю запрос, я получаю вывод от println()
sourceMapper = null
Модель
public class Source {
@Autowired
public static SourceMapper sourceMapper; #### Why isn't this set?
public static Source findOrCreate(String url) {
...
System.out.println("sourceMapper = " + sourceMapper);
source = sourceMapper.findByHost(host);
...
}
}
Я внимательно следил за примерами.
http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
Другой @Autowired
Mappers
в основном @Controller
классе, который обрабатывает запросы, работает, даже если они являются частными.
Это класс Mapper
package ...mapper;
@Mapper
public interface SourceMapper {
...
Я снова столкнулся с этой проблемой с новой моделью и картографом. Я пытался следовать Почему мое поле Spring @Autowired имеет значение null? и пример кода , но оно было все еще null! Я пробовал @Configurable
, @Service
, @Component
.
Model
@Configurable
public class Domain {
@Autowired
private static DomainMapper domainMapper;
public static void incrementCounter(String host) {
...
Domain d = getDomainMapper().find(host, thisMonth);
public static DomainMapper getDomainMapper() {
return domainMapper;
public static void setDomainMapper(DomainMapper domainMapper) {
Domain.domainMapper = domainMapper;
Mapper
@Mapper
public interface DomainMapper {
MyBatis 3.4.5, MyBatis Spring 1.3.1, MyBatis Spring Boot Autoconfigure 1.3.1, MyBatis Spring Boot Starter 1.3.1