【发布时间】:2019-12-19 02:20:46
【问题描述】:
我正在尝试将 StarMX 框架 (https://github.com/rogeriogentil/starmx) 集成到旧版 Web 应用程序中。该框架使用 JMX 技术并使用单例模式进行初始化:StarMXFramework.createInstance()。 Web 应用程序使用 Java EE 6 技术,例如 EJB 和 CDI(也称为 DeltaSpike)。但是,初始化框架的方式(下面的代码)不会将其实例添加到 CDI 上下文中。
import org.starmx.StarMXException;
import org.starmx.StarMXFramework;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Startup
@Singleton
public class StarMXSingleton {
private StarMXFramework starMX;
@PostConstruct
public void postConstruct() {
try {
starMX = StarMXFramework.createInstance();
} catch (StarMXException e) {
(...)
}
}
@PreDestroy
public void preDestroy() {
if (starMX != null) {
try {
starMX.shutdown();
} catch (StarMXException e) {
(...)
}
}
}
}
我知道可以扩展 CDI,但是是否可以将单例框架的实例添加到 CDI 上下文中?
【问题讨论】: