提问人:yzd11 提问时间:10/5/2023 最后编辑:Artem Bilanyzd11 更新时间:10/5/2023 访问量:53
我在使用 SpringBoot2 集成 mybatis 的过程中遇到了一个问题
I encountered a problem in the process of integrating mybatis in using SpringBoot2
问:
这是我启动项目时的错误消息
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-10-05T18:47:51.471+08:00 ERROR 26348 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field bookMapper in com.yzd.boot.service.BookService required a bean of type 'com.yzd.boot.mapper.BookMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.yzd.boot.mapper.BookMapper' in your configuration.
我正在尝试使用 bookMapper 根据 Id 查找书籍信息,但项目显示找不到 BookMapper 组件
这是我的 Mapper 界面的代码
@Mapper
public interface BookMapper {
public Book getBook(Integer bookId);
}
BookMapper.xml代码
<mapper namespace="com.yzd.boot.mapper.BookMapper">
<!-- public Book getBook(Integer bookId);-->
<select id="getBook" resultType="com.yzd.boot.bean.Book">
select * from t_book where book_id = #{bookId}
</select>
</mapper>
服务层代码
@Service
public class BookService {
@Autowired
private BookMapper bookMapper;
public Book getBook(Integer bookId){
Book book = bookMapper.getBook(bookId);
return book;
}
}
控制器层代码
@Controller
public class IndexController {
@Autowired
private BookService bookService;
@ResponseBody
@RequestMapping("/acct")
public Book getBook(@RequestParam("id") Integer id){
Book book = bookService.getBook(id);
return book;
}
}
application.yaml 代码
#Two rules of MyBatis
mybatis:
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml
我做了三次尝试,但没有一次成功。
我尝试用@MapperScan注释启动项,但它仍然产生报告的错误
这是一条错误消息。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookMapper' defined in file [D:\code-storage\idea\java\boot02-web-dev\target\classes\com\yzd\boot\mapper\BookMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713) ~[spring-beans-6.0.11.jar:6.0.11] ... 39 common frames omitted
代码显示我需要sqlSessionFactory或sqlSessionTemplate,但不是springBoot自动配置的,我只是在pom.xml和application.yaml中配置了数据源和连接驱动程序。
我查看了目标中的文件,发现Mapper文件存在,但是我仍然无法将其注入BookService。
我尝试将@Repository注释添加到映射器界面,但仍然没有运气。
答: 暂无答案
评论
_spring-boot
spring-integration