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 文档。
我有 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 文档。