为了账号安全,请及时绑定邮箱和手机立即绑定

无法自动装配。未找到“int”类型的 bean

无法自动装配。未找到“int”类型的 bean

开心每一天1111 2021-06-11 18:29:14
我正在使用 Spring Boot,但在理解 Beans 时遇到了一些麻烦。我相信 Beans 取代了new关键字。我发现仅使用 Autowire 时,我的 Beans 不会在对象上创建新实例,并且我的 REST 应用程序将返回用户首先要求的相同响应(即,如果我最初访问了 url/id/1,然后访问了 url /id/2 REST 响应将与 url/id/1 相同)。我试图通过创建一个 @Configuration 文件来定义一个 bean 来解决这个问题。@Configurationpublic class UserConfig {    @Autowired    UserDAO DAO;    @Bean    public User getUser(int uid) {        try {            return DAO.getUser(uid);        } catch (SIDException e) {            return null;        }    }}但我在运行时不断收到此错误: Parameter 0 of method getUser in com.application.Config.UserConfig required a bean of type 'int' that could not be found.我不明白这一点,因为我试图在配置文件中定义 Bean。在我的主文件中,我有这些注释:@SpringBootApplication(scanBasePackages = {"com.application.Config","com.application"})@ComponentScan({"com.application.Config","com.application"})如果有帮助,我将在这种情况下使用我的 bean:@Servicepublic class UserService {    @Autowired    private UserDAO DAO;    public User getUser(int uid) {        try {            return DAO.getUser(uid);        } catch (SIDException e) {            return null;        }    }}
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

当 Spring 尝试创建一个 bean 时,它需要知道 int uid 值。其他答案的建议可能会解决异常。

但是您试图做的是对 Spring 的不当使用。我建议您阅读有关春豆的信息,例如。在进一步之前。

你的getUser方法不需要是一个 bean,你的 dao 是 bean,这就足够了。你UserService看起来不错,如果你对不同的 URL 得到相同的结果,你应该在UserService.getUser方法中调试 uid 值。如果 uid 在那里很好,那么在 Dao 中检查您的查询。


查看完整回答
反对 回复 2021-06-17
  • 2 回答
  • 0 关注
  • 458 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信