繁体   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