yml配置文件数据转换成list出现类型转换异常

新手上路,请多包涵

Spring Boot项目

yml中配置

acme:
  list[0]:
     name:my name
     description:my description

java代码

@ConfigurationProperties("acme")
@Component
public class AcmeProperties {
    private final List<User> list = new ArrayList<>();

    public List<User> getList(){
        return this.list;
    }
}

user类

@Repository
public class User {

    private String name;
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

调用

@RestController
@SpringBootApplication
public class DemoApplication {
    private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);

    @Autowired
    private AcmeProperties acmeProperties;
    
    @RequestMapping("/proper")
    String proper(){
        List<User> list = acmeProperties.getList();
        for(User user : list){
          logger.info(user.getName()+":"+user.getDescription());
        }
        return "hello world";
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

启动报错:

Failed to bind properties under 'acme.list[0]' to com.example.demo.dao.User:

    Reason: No converter found capable of converting from type [java.lang.String] to type [com.example.demo.dao.User]

Action:

Update your application's configuration

有大佬知道配置文件哪里写错了吗?

阅读 3.1k
1 个回答
新手上路,请多包涵

为什么他不能自动转换成com.example.demo.dao.User

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题