我正在 servlet 中试验 @Resource
,看看我们是否可以使用它轻松注入(inject)配置参数(这是 Glassfish 4.1.1 中的 servlet 3.0 webapp)。
我在 https://stackoverflow.com/a/45715196/53897 中被告知我看到的 @Resource String userName 的行为在使用时如果 web.xml 中的 env-entries 不存在则无法解析则为 null,根据规范是错误的,但是WildFly 的行为是相同的。
问题是:这是一个已知的错误吗?是否有一个标志可以强制执行“如果不可解析则失败”?
最佳答案
这对于简单的环境条目是允许的:
EE.5.4.1.3
...
将字段或方法声明为注入(inject)目标通常很方便,但是
在代码中指定默认值,如以下示例所示。
//最大免税数量,由部署者配置。
@Resource int maxExemptions = 4;//默认为 4
为了支持这种情况,容器必须仅在以下情况下为此资源注入(inject)一个值:
部署者已指定一个值来覆盖默认值。
......
关于java - 如果 @Resource 无法解析,Glassfish/Wildfly 不会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716813/