【发布时间】:2020-06-23 07:54:40
【问题描述】:
我正在 Spring Boot 中创建一个 REST 服务。我在配置类中创建一个 bean 并尝试通过自动连接在服务类中使用,但我总是得到空值,我也尝试过构造函数注入但没有工作。下面是代码,
主应用
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
REST 控制器
@RestController
@RequestMapping("/v1")
public class RestController {
@Autowired
private Service service;
服务
@Service
public class ServiceImpl implements Service {
//This is the bean
@Autowired
private Record record;
public ServiceImpl() { //-----------------> tried injecting in constructor as well
System.out.println(record); //-------------------> null
}
配置类
@Configuration
public class AppConfig {
@Bean
public Record record() {
return new Record("test");
}
}
我注意到每当我从配置类中删除记录()时,我都会遇到以下错误
required a bean of type 'com.ns.service.Record' that could not be found
并且添加方法后不报错但返回null,这间接意味着record()被认为返回了所需的bean。 我找不到我做错了什么请指教。
【问题讨论】:
-
你能提供你的项目结构吗?如果您通过展开所有包来粘贴屏幕截图,效果会更好。
-
当然是构造函数中的
null。该字段只能在构建 bean 之后自动连接。因此,该字段将在对象构建后填充。
标签: java spring spring-boot spring-mvc spring-restcontroller