初学SpringBoot,在使用Mybatis+Springboot工程搭建DEMO时遇到的两个问题

问题1:各种bean无法正常加载

报错信息:

Error creating bean with name "userController": Unstaisfied dendency expressed field 'userService'; nest …… ; 文档根元素“mapper”必须匹配 DOCTYPE 根  “null”。

原因是在Mybatis建立对应UserMapper对应的User.xml时,第二行缺少了一个xml描述信息。

<!DOCTYPE> mapper PUBBLIC "-//mybatis.org//DTD Mapper 3.0//EN " "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

问题2: SpringBoot工程启动成功,但是接口无法访问到

问题描述:
启动Springboot 工程后无错误信息,通过postman访问接口无反应,检查Controller中的@RestController标签,并没有错误。检查是否配置了context-path,也没有问题。

问题原因:Springboot启动类位置不对

SpringBoot 启动时,默认注解扫描的范围是Application.java类的同级和子目录。

|-com.xxx.demo
	|-controller
		|-UserController.java
	|-domian
		|-User.java
	|-mapper
		|-UserMapper.java
	|-starter
		|-Application.java  //启动类

如图,我在建立启动类时参照以前看到过的建立了package包用来放start类,但是由于SpringBoot默认的注解扫描策略,导致Controller中的接口没有被自动识别,因此访问接口无反应。

解决方法一:

如果需要这样的格式需要制定Springboot的扫描地址
在启动类上加入

@SpringBootApplication
@ComponentScan("com.xxx.demo") //申明需要扫描的范围
public class Application{
	public static void main( String[] args ){
		SpringApplication.run(Application.class,args);
	}
}
解决方法二:

移动启动类Application类的位置,使其能默认导入能扫描到注解。

|-com.xxx.demo
	|-controller
		|-UserController.java
	|-domian
		|-User.java
	|-mapper
		|-UserMapper.java
	|-Application.java  //启动类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值