- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在支持 CDI 钝化的 bean 中,是否可以重新注入(inject)而不是钝化不支持钝化的依赖项?
考虑这段代码:
@SessionScoped
public class UserData implements Serializable {
@Inject
private Logger log;
private String data;
}
@ApplicationScoped
public class LoggerFactory {
@Produces
public Logger getLogger(){
...
}
}
public class Logger {
...
}
所以 Logger
不是 Serializable
,但我真的不在乎。当 UserData
被反序列化时,是否有可能以某种方式再次调用 Logger
的生产者?
最初的讨论从这里开始:
http://www.cdi-spec.org/news/2015/07/03/CDI-2_0-EDR1-released/#comment-2119769909
希望CDI专家组想出比@Instance
更好的方法
最佳答案
检查 spec ,你有你的答案。 Logger
不可序列化,因此 Logger
类型的 bean 不具备钝化能力。容器未提供您请求的技巧。
解决方案是这样写:
@SessionScoped
public class UserData implements Serializable {
@Inject
private Instance<Logger> logInstance;
private String data;
public Logger getLog() {
return logInstance.get();
}
}
Ans 在您的代码中使用 getLog()
而不是 log
。
关于java - 在 CDI Passivation Capable bean 中,是否可以重新注入(inject)而不是钝化不支持钝化的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251288/
我有一个网站,我使用 .swf 文件收集 Flash 屏幕分辨率数据以及来自 JavaScript 的相同数据,并将其发送到我的服务器。 对于某些用户来说,此数据看起来有误 - Flash 分辨率偶尔
我目前正在使用 OSGi 框架,但我对一些对我来说不是 100% 清楚的概念有疑问。我自己在寻找它,但我找不到一个能清楚解释它的体面的答案。 在一个包中,他使用的 header 的 list head
我已经使用下面的方法为 MySQL 数据库配置了用户定义的数据源。 WebSphere 8.5 mysql-cluster-gpl-7.4.6 mysql-connector-java-5.1.9-b
本文通过 Google 翻译 Capabilities – Linux Privilege Escalation - Juggernaut-Sec 这篇文章所产生,本人仅是对机器翻译中部分表达别
我正在研究 Azure 服务总线队列负载平衡。我发现“随着负载的增加,可以添加更多工作进程来从队列中读取数据。”这是否意味着我需要实现代码来自动缩放工作角色,或者服务总线队列具有内置功能来增加或减少工
我很抱歉,也许,再次重复同样的问题,但我迷路了,不知道该去哪里。经过大量谷歌搜索和 RTFMing 我能在方法上找到的所有内容之后,我仍然找不到令我满意的答案。 面向对象的编程对我来说相对较新(在过程
在我的iOS应用中,我创建了一个自定义区域,然后通过CKFetchRecordOperation获取了该区域。之后,让控制台打印获取的CKRecordZone的属性“capabilities”的值。值
我使用了 SauceLabs example DesiredCapabilities capabilities = new DesiredCapabilities(); capabilit
我正在尝试为我的 .net core 应用程序实现持续部署。当调用 lambda 函数时,我尝试创建一个 cloudformation 来启动资源。但出现错误: 创建 Cloud Formation
在我的 UIMA 应用程序中,我有一些注释器必须在某个注释器运行后运行。 起初,我考虑过将这些注释器聚合在一起,但我有其他注释器也依赖于这个(和其他)注释器,这使得聚合变得困难和/或不切实际。 我阅读
对不起标题,我会尽力更好地解释这个问题。我已经为我的 log4net 实例创建了一个包装器,我使用以下构造函数实例化了这个记录器: public MyLogger(string _dbName
我使用 ChromeDriver 2.33 和 WebDriver 3.6.0 并尝试设置文件下载的默认目录。 Map prefs = new HashMap(); prefs.put("downlo
我正在开发一个为触控设备实现特定功能的网站。我的目标是智能手机、平板电脑,实际上是所有使用触摸屏作为主要输入的东西。 为此,我使用了 Modernizr 的 Modernizr.touch 但是,在安
我有一个关于.Capabilities.APIVersions.Has 的问题 - 我不确定它是如何工作的 我有以下功能: {{- define "fybrik.certManagerApiVersi
是否有可能找到与特定中断关联的 MSI 能力结构的位置?具体来说,我需要知道写入时触发该中断的 PCI 地址。 MSI 中断可以很容易地用 pci_alloc_irq_vectors(9) 函数初始化
在 typescript 中使用 Protractor (selenium) 我可以调用 browser.driver.getCapabilities() 来获取如下所示的对象: Capabiliti
我有一个与 Amazon Aurora PostgreSQL 兼容的数据库,作为“实时”试点实例运行。 我计划在明年初进行正式的生产过渡,我曾设想这将包括创建开发和测试实例、开始快照恢复等。此外,我迫
我正在读取另一个生成输出(缓慢且无限)的进程的输出。因为我想实时读取这些数据,所以我使用“stdbuf -oL”(行缓冲,数据是文本)。我无法控制生成过程,因此无法修改源以强制刷新。 到目前为止,st
在 android 6.0.1 上尝试使用 run-as 时出现此错误。 ⋊> ~ adb shell
本文整理了Java中org.opendaylight.controller.netconf.util.capability.YangModuleCapability类的一些代码示例,展示了YangMo
我是一名优秀的程序员,十分优秀!