Spring Boot bean创建/注入问题

时间:2016-02-28 09:38:10

标签: spring-boot autowired spring-bean

我有弹簧启动应用程序,我不知道我的代码中有什么错误。它给了我创建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

1 个答案:

答案 0 :(得分:2)

由于您还没有显示上面所有类所在的包,我只能假设您的项目结构存在问题。

UserService课程可能在@ComponentScan之外。

现在@SpringBootApplication@Configuration @EnableAutoConfiguration @ComponentScan相同,因此请确保UserService.java位于Application.java的同一个包或子包中。

查看此Spring Boot文档。