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
有大佬知道配置文件哪里写错了吗?
为什么他不能自动转换成
com.example.demo.dao.User