项目的pom文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.bes spring-colud 1.0.0-SNAPSHOT user-service pom org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE UTF-8 UTF-8 1.8 Finchley.SR1 2.0.3 5.1.32 1.2.5 org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} tk.mybatis mapper-spring-boot-starter ${mapper.starter.version} com.github.pagehelper pagehelper-spring-boot-starter ${pageHelper.starter.version} mysql mysql-connector-java ${mysql.version} org.projectlombok lombok 1.18.4 org.springframework.boot spring-boot-maven-plugin
我的application.yml配置为:
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot
username: root
password: root
mybatis:
type-aliases-package: com.bes.user.domain
UserDao为
package com.bes.user.dao; import com.bes.user.domain.User; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.common.Mapper; public interface UserDao extends Mapper{ }
UserService为:
package com.bes.user.service;
import com.bes.user.dao.UserDao;
import com.bes.user.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class UserService {
@Autowired
UserDao userDao;
public User findById(Integer id) {
User user = userDao.selectByPrimaryKey(id);
return user;
}
}UserController为:
package com.bes.user.web;
import com.bes.user.domain.User;
import com.bes.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@GetMapping("{id}")
public User findById(@PathVariable("id")Integer id) {
User user = userService.findById(id);
return user;
}
}UserApplication为:
package com.bes;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@MapperScan("com.bes.user.dao")
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
}上述代码是填坑之后的,而错误的原因也非常奇葩在UserService中自动注入UserDao时提示我没有UserDao这个bean.

于是我就在UserDao上加了一个@Repository注解,如下图:

而后UserService不在报错了,运行UserApplication项目正常起来了。

但是通过浏览器访问时却一片空白。

这时在回到IDEA查看下方日志多了两行东西。1111是我调试时让它打印的无关东西。

这个奇怪的错误搞了我几个小时。最后发现不因给在UserDao上加@Reposity注解。UserService中注入Use人Dao报错时应如下处理:
1、鼠标点击报错的UserService中报错的UserDao
2、ALT+ENTER
3、选择第一个选项
4、在选择disable开头的选项