不知道以下的天真的实现是否满足“最佳”的标准,但是您可以创建一个新的服务来处理这种责任,例如:
@Servicepublic class OperatorsService { @Value("${json.config.folder}") String jsonConfigFolder; List<ContextOperatorBean> operators = new ArrayList<>(); @PostConstruct public void init() throws IOException { ObjectMapper jsonMapper = new ObjectMapper(); for (File jsonFile : getFilesInFolder(jsonConfigFolder)) { // deserialize contents of each file into an object of type ContextOperatorBean operator = jsonMapper.readValue(jsonFile, new TypeReference<List<ContextOperatorBean>>() {}); operators.add(operator); } } public List<ContextOperatorBean> getMatchingOperators(String context) { return operators.stream().filter(operator -> checkIfMatches(operator, context)).collect(Collectors.toList()); } private boolean checkIfMatches(ContextOperatorBean operator, String context) { // TODO implement return false; } private File[] getFilesInFolder(String path) { // TODO implement return null; }}
注意:忽略了处理失败或意外情况以及一些实施细节。
然后
@Autowire在控制器中调用它并
getMatchingOperators()仅过滤匹配的条目。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)