我正在使用 Spring Boot,但在理解 Beans 时遇到了一些麻烦。我相信 Beans 取代了new关键字。
我发现仅使用 Autowire 时,我的 Beans 不会在对象上创建新实例,并且我的 REST 应用程序将返回用户首先要求的相同响应(即,如果我最初访问了 url/id/1,然后访问了 url /id/2 REST 响应将与 url/id/1 相同)。
我试图通过创建一个 @Configuration 文件来定义一个 bean 来解决这个问题。
@Configuration
public 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:
@Service
public class UserService {
@Autowired
private UserDAO DAO;
public User getUser(int uid) {
try {
return DAO.getUser(uid);
} catch (SIDException e) {
return null;
}
}
}
狐的传说
相关分类