[英]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.