Spring 引导 bean creation/injection 问题

Spring Boot bean creation/injection issue

我有 spring 启动应用程序,但我不确定我的代码有什么问题。它给了我创建 bean 的错误。我使用了@Autowired,但不确定哪里出了问题。

Main.Java

@SpringBootApplication
public class Application
{
    public static void main(String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

UserWS.java

@Controller
public class UserWS
{

    @Autowired
    UserService userService;

    @RequestMapping(value = URLConstants.ADD, method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<Status> add(@RequestBody User user) throws PeerRateException
    {
        try
        {
            userService.addUser(user);
            Status status = PeerUtils.getSuccessStatus();
            status.setObject(null);
            return new ResponseEntity<>(status, HttpStatus.OK);
        }
        catch (Throwable t)
        {
            throw new PeerRateException(ExceptionConstants.USER_CREATE_CODE, ExceptionConstants.USER_CREATE, t);
        }
    }
}

UserService.Java

@Component
public class UserService
{

    @Autowired
    private UserDao userDao;

    public void addUser(User user)
    {
        userDao.save(user);
    }

}

UserDao.java

@Transactional
public interface UserDao extends CrudRepository<User, Long>
{

}

编辑

com.hk.peerrate.main
    Main.java
com.hk.peerrate.service
    UserService.java
com.hk.peerrate.ws
    UserWS.java

由于您没有显示上述 class 所在的包,我只能假设问题出在您的项目结构上。

UserService class 可能在 @ComponentScan 之外。

现在 @SpringBootApplication@Configuration @EnableAutoConfiguration @ComponentScan 相同,因此请确保 UserService.java 与您的 Application.java 在同一包或子包下。

看看这个 Spring Boot 文档。