我有一个配置对象,它映射到配置文件,如下所示:
@Data
@Component
@ConfigurationProperties("app.cors")
public class DomainProperties {
private Map<String, String> domainMap;
}
和我的 application.properties 配置文件如下所示:
app.cors.domainMap.local=localhost:8080
app.cors.domainMap.onlive=test.com
我正在尝试从上面的属性文件中读取 domainMap 中的值,将它们设置为我的应用程序响应的Access-Control-Allow-Origin标头。到目前为止我所做的是:
public class HeaderInterceptor extends HandlerInterceptorAdapter {
@Autowired
private DomainProperties domainProperties;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
List<String> domainList= domainProperties.getDomainMap().values().stream().collect(Collectors.toList());
domainList.stream().forEach(domain -> response.addHeader("Access-Control-Allow-Origin", domain));
return super.preHandle(request, response, handler);
}
但问题是我收到了 null domainProperties 对象,因此会抛出NullPointerException。
任何人都可以解释我为什么在这里获得 null domainProperties 对象?以及如何解决这个问题。先谢谢你了!