[英]Can't Autowire List of objects in Spring boot
我正在 Spring 引导中创建 REST 服务。 我正在创建一个对象列表( List<Record>
)作为配置 class 中的 bean 并尝试通过自动接线在服务 class 中使用,但我总是得到空列表,我也尝试过构造函数注入但没有工作。 下面是代码,
主应用
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
REST controller
@RestController
@RequestMapping("/v1")
public class RestController {
@Autowired
private Service service;
服务
@Service
public class ServiceImpl implements Service {
@Autowired
public ServiceImpl(List<Record> records) {
System.out.println(records); //------------------->getting empty list [null]
data = new Data();
customers = Arrays.asList("John", "James", "Calvin");
}
配置 class
@Configuration
public class AppConfig {
@Bean
public List<Record> records(){
List<Record> records = new ArrayList<Record>();
records.add(new Record("d"));
return records;
}
}
我找不到我做错了什么,请指教。
以下代码适用于我:
public class Record {
private final String s;
public Record(String s) {
this.s = s;
}
@Override
public String toString() {
return "Record{" +
"s='" + s + '\'' +
'}';
}
}
@Service
public class RecordService {
private final List<Record> recordList;
public RecordService(List<Record> recordList) {
this.recordList = recordList;
}
}
@Configuration
public class MyConfiguration {
@Bean
public List<Record> recordList() {
return Arrays.asList(new Record("a"), new Record("b"));
}
}
一切都按预期注入(弹簧启动版本 2.3.1.RELEASE)
从问题来看,您似乎做对了一切,我基本上只是确认 spring / spring 引导可以处理这样的情况。 您使用哪个 spring 启动/弹簧版本?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.