如果@Resource无法解析,Glassfish/Wildfly不会失败?
我正在试验一个servlet中的@Resource
,看看我们是否可以使用它轻松注入配置参数(这是Glassfish 4.1.1中的servlet 3.0 webapp)。如果@Resource无法解析,Glassfish/Wildfly不会失败?
我被告知https://*.com/a/45715196/53897我看到的@Resource String userName
的行为在使用时为空,如果web.xml中的env-entries不存在,根据规范错误地解决该问题,但是WildFly的行为是一样的。
问题是:这是一个已知的错误吗?有没有可以强制执行“如果不能解决就失败”的标志?
这是允许简单的ENV条目:
EE.5.4.1.3
....
这是很方便的声明一个字段或方法注入目标,但 指定一个默认代码中的值,如以下示例所示。
//由部署者配置的最大免税额。
@Resource int maxExemptions = 4; //默认为4
为了支持这种情况,如果 部署者指定了一个值来覆盖默认值,那么容器只能为该资源注入一个值。
.....
感叹。谁认为这是一个好主意显然不需要处理错误的配置条目,而且它仍然在Java EE 7(第84页)中。对于这些东西,默认值是一个糟糕的主意。问题是如果措辞要求提供默认值,或者空例也可以?再次感叹。 –
我和其中一位WildFly的开发者谈论了这件事,他让我提出一张票。请参阅https://issues.jboss.org/browse/WFLY-9235。如果确实发现这是一个bug,那么它就是TCK无法捕捉的,这也是GlassFish错过了它的原因。 –