Я пытаюсь использовать «MyBatis-CDI» с «Micronaut», но я не могу ввести Mapper.
io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [docloud.mappers.UserMapper] exists.
Я думаю, что проблема в SqlSessionFactory, потому что я не могу использовать @ApplicationScoped
public class MyBatisFactory {
@Context
@Produces
@SessionFactoryProvider
SqlSessionFactory sqlSessionFactory() throws IOException {
String resources = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resources);
return new SqlSessionFactoryBuilder().build(inputStream);
}
}
Интерфейс Mapper
import org.mybatis.cdi.Mapper;
@Mapper
public interface DocumentMapper {
...
}
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="org.postgresql.Driver" />
<property name="url" value="------------"/>
<property name="username" value="-------"/>
<property name="password" value="-------"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/UserMapper.xml" />
<mapper resource="mappers/DocumentMapper.xml" />
<mapper resource="mappers/PermissionMapper.xml" />
</mappers>
</configuration>
У вас есть идеи, как это исправить? Проблема существует только если хотите использовать MyBatis-CDI