我知道我可以从properties
文件行属性创建对象。
我想获得一个动态的对象数组,就像这样。
application.properties
heroes.hero1=1,superman,kent
heroes.hero2=2,batman,wayne
假设有人会在文件中添加另一个英雄。春天是否有可能自动理解英雄阵列的附加物?这个问题有方法解决吗?或者从txt文件中读取和构造此类对象更容易。
答案 0 :(得分:2)
是的,你可以。使用以下代码注入这些属性:
@Value("${heroes.hero1}")
private String[] heroes1;
@Value("${heroes.hero2}")
private String[] heroes2;
答案 1 :(得分:2)
您实际上可以使用Spring Boot Core功能实现此功能:
创建一个新的Java类(现在使用Lombok for Getters / Setters)
@ConfigurationProperties(prefix = "heroes")
@Getter
@Setter
public class HeroesProperties {
private Map<String, List<String>> heroesMapping;
}
在你的application.properties中,你可以动态添加更多英雄。
E.g。
heroes.hero1=1,superman,kent
heroes.hero2=2,xx,aa
heroes.hero3=3,yy,bb
heroes.heroN=4,zz,cc
答案 2 :(得分:1)
注入Environment
并致电getProperty
:
import org.springframework.core.env.Environment;
@Autowired
private Environment env;
public String[] getHero() {
return env.getProperty("heroes",String[].class);
}