我已经参考了这篇文章以及其他许多文章,但没有找到清晰明确的帮助信息。 我在下面提供了我的发现,并给出了该线程的一些参考:
春季启动版本:1.3.5.RELEASE
春季核心版本:4.2.6.RELEASE
依赖管理:Brixton.SR1
以下是相关的Yaml摘录:
tools:
toolList:
-
name: jira
matchUrl: http://someJiraUrl
-
name: bamboo
matchUrl: http://someBambooUrl
我创建了一个Tools.class:
@Component
@ConfigurationProperties(prefix = "tools")
public class Tools{
private List toolList = new ArrayList<>();
public Tools(){
//empty ctor
}
public List getToolList(){
return toolList;
}
public void setToolList(List tools){
this.toolList = tools;
}
}
我创建了一个Tool.class:
@Component
public class Tool{
private String name;
private String matchUrl;
public Tool(){
//empty ctor
}
public String getName(){
return name;
}
public void setName(String name){
this.name= name;
}
public String getMatchUrl(){
return matchUrl;
}
public void setMatchUrl(String matchUrl){
this.matchUrl= matchUrl;
}
@Override
public String toString(){
StringBuffer sb = new StringBuffer();
String ls = System.lineSeparator();
sb.append(ls);
sb.append("name: " + name);
sb.append(ls);
sb.append("matchUrl: " + matchUrl);
sb.append(ls);
}
}
我通过@Autowired在另一个课程中使用了这种组合
@Component
public class SomeOtherClass{
private Logger logger = LoggerFactory.getLogger(SomeOtherClass.class);
@Autowired
private Tools tools;
/* excluded non-related code */
@PostConstruct
private void init(){
List toolList = tools.getToolList();
if(toolList.size() > 0){
for(Tool t: toolList){
logger.info(t.toString());
}
}else{
logger.info("*****----- tool size is zero -----*****");
}
}
/* excluded non-related code */
}
并且在我的日志中记录了名称和匹配的URL。 这是在另一台机器上开发的,因此我不得不重新输入所有上述内容,因此,如果我无意中输入了错误的内容,请提前原谅我。
我希望此合并评论对许多人有所帮助,并感谢以前对此主题所做的贡献!