Spring boot springbootbean创建/注入问题
我有一个spring boot应用程序,我无法确定代码中有什么错误。它给了我创建bean的错误。我使用了@Autowired,但不确定出了什么问题 Main.JavaSpring boot springbootbean创建/注入问题,spring-boot,autowired,spring-bean,Spring Boot,Autowired,Spring Bean,我有一个spring boot应用程序,我无法确定代码中有什么错误。它给了我创建bean的错误。我使用了@Autowired,但不确定出了什么问题 Main.Java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } Us
@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);
}
}
}
UserDao.java
@Transactional
public interface UserDao extends CrudRepository<User, Long>
{
}
因为您没有显示上面所有类所在的包,所以我只能假设问题出在您的项目结构上
UserService
类可能在@ComponentScan
之外
现在@SpringBootApplication
与@Configuration@EnableAutoConfiguration@ComponentScan
相同,因此请确保用户服务.java
位于应用程序.java的相同包或子包下
请查看此文档。这是错误:org.springframework.beans.factory.BeanCreationException:创建名为“userService”的bean时出错:自动关联依赖项的注入失败;是的,我是对的。这是你包裹的问题。您只需将您的Application.java
移动到com.hk.peerrate
包,这样@ComponentScan
将应用于所有其他类,因为它们属于子包。如您所说,更改了包结构,但仍然是org.springframework.beans.factory.NoSuchBean定义异常:未找到符合依赖项类型[com.hk.peerrate.dao.UserDao]的合格bean:应至少有1个bean符合此依赖项的autowire候选。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}您是否将UserDao.java
移动到Application.java
子包下?我想您可能需要在Application.java
上设置存储库类,如下@EnableJpaRepositories(“com.hk.peerrate.dao”)
如果您感兴趣,请查看我在Spring Social Twitter和Spring Boot上的实验。
@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