如何解决Spring environment.getActiveProfiles;始终为null
我在xhtml中有页面,我不想在生产中呈现此页面,所以我用面板包裹了页面上的所有元素
<p:panel id="main" rendered="#{swaggerBean.activeProfiles}" >
SwaggerBean.class:
@ManagedBean
@ViewScoped
@Data
public class SwaggerBean{
@Autowired
Environment environment;
public boolean getActiveProfiles() {
String[] activeProfiles = environment.getActiveProfiles();
for (String activeProfile : activeProfiles) {
if (activeProfile.contains("prod"))
return true;
}
return false;
}
}
尝试进入页面后,在行上出现空指针异常:
String[] activeProfiles = environment.getActiveProfiles();
我也尝试通过@ManagedProperty注入环境,但结果相同
@ManagedProperty(value="#{environment}")
private Environment environment;
您知道如何避免在@ManagedBean上使用此空指针吗? 我尝试使用Autowired Environment is null中的EnvironmentAware解决方案,但是仍然有NPE,或者也许有更好的方法来禁用我的生产页面?
解决方法
用@Component而不是@ManagedBean注释SwaggerBean
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。