簡體   English   中英

無法在 Spring 引導中自動裝配對象列表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM