cdi相关内容
我刚刚开始了夸夸其谈的概念证明。容器启动的时间真是太神奇了! 现在,我正在研究“依赖注入”部分。并找出选项。 https://quarkus.io/blog/quarkus-dependency-injection/ 我的偏好是: 我更喜欢构造函数注入。 (一切正常)。 我更喜欢“ java config”,因此我可以遵循“ Composition Root”模式,将
..
给出以下类 私有静态类ProducedInSubClass { } private静态类ProducedInSuperClass { } 公共静态类SuperClass { @Produces public ProducedInSuperClass producerInSuperClass = new ProducedInSuperClass(); } 公共静态类
..
我有一个具有以下类的Java SE应用程序: main: public static void main(String args []) { Weld weld = new Weld(); WeldContainer容器= weld.initialize(); ShopCar sc = container.instance()。select(ShopCar.class
..
我有两个类,A和B,需要使用服务。有两个服务,S1和S2。 S2扩展了S1。我希望将S1注入A类,将S2注入B类。如何在CDI中实现这一目标? 公共类S1 { } 公共类S2扩展了S1 {} 公共类A { @Inject S1服务; //模棱两可?是S1还是S2? } 公共类B { @Inject S2服务; } 解决方案 @Typed 注释启用
..
我有一个具有2个Web应用程序的JavaEE应用程序。我还具有另一个包含由 @ApplicationScoped 注释的common_bean的库Web模块。我的问题是:我可以共享吗 已更新-我做了测试 在Web App1(/ web1) 中 @WebServlet(“ / Servlet1”) 公共类Servlet1扩展了HttpServlet { @Inject
..
我正在寻找一种干净的CDI解决方案,而不是一个依赖WELD的解决方案,但到目前为止没有任何东西... 我需要测试对象列表中的每个元素是否我使用@Inject @Any MyInterface bean获得的是代理,当为true时,我需要获取真实的对象进行自省并获取该对象的所有属性。 我的WELD实现: MyInterface interf = obj; if(isProxy
..
我正在搜索,但找不到答案,我需要基于权限的安全资源,我无法使用过滤器,因为FacesContext之前未初始化,因此我需要在会话bean中加载权限。一些避免使用过滤器的解决方案? PhaseListener,ViewHandler和ResourceHandler无法捕获URL资源请求,例如,我需要拒绝此直接访问: http://127.0.0.1:8080/test/resources/image
..
我将EJB注入到抽象类中是一个问题,该抽象类是我的JSF CDI bean的父类。在我的项目中,我正在使用MyFaces CODI 1.0.5(ViewScope),Omnifaces 1.3,PrimeFaces 3.4.2和GlassFish 3.1.2。 应用程序是EAR,抽象类在EJB模块中,而JSF CDI bean在WAR模块中: webframework-demo.ea
..
最后,如此处所述,我在Spring Boot环境中成功引导了Weld。对于使用Mojarra的JSF和使用Jersey的Web服务,CDI都可以正常工作。 但是现在,当我尝试在应用程序中包含Omnifaces 2.6时遇到了问题。 p> 我的应用程序启动失败,并显示以下消息: com.sun.faces .config.ConfigurationException:未正确配置工
..
我知道Instance不属于JSR 330,但是有Spring等效项吗?我对实例实现Iterable感兴趣,因此Provider将不是正确的答案。 公共接口Report {。 ..} (有两个类使用 @Named来实现报告注释) @命名为 的公共类ReportRunner { @Inject private Instance报告; }
..
是否可以在使用 new 关键字创建的类中获取CDI bean的实例?我们目前正在对旧的应用程序进行一些增强,并且总是得到编程时,rel =“ nofollow”> ContextNotActiveException 在我们的应用程序中查找CDI Singleton bean。 获取引用的代码: 公共类ClassCreatedWithNew { public void doSometh
..
我有一个LoginProvider接口: 公共接口LoginProvider { 布尔登录名(字符串用户名,字符串密码) ; } 和2种不同的实现方式: 公共类LoginProvider1Impl实现LoginProvider { @Override public boolean login(String username,String password){
..
我需要将 ConversationScoped bean注入到servlet中。我使用标准的简单 @Inject 标记,并使用cid参数调用servlet,但是当它调用注入的bean中的任何方法时,会出现以下错误: org.jboss.weld.context.ContextNotActiveException : WELD-001303 范围类型 javax.enterprise.cont
..
这是我经常遇到的问题,我认为CDI事件也许可以帮到我,但我不确定。 我有两个用户在网站上进行互动,我希望他们共享一个bean实例,以便他们都可以共享一个活动。到目前为止,我唯一知道方法的方法是将数据推送到数据库,然后使用两个不同的bean(每个用户一个)连续检查更改。 我的问题是,如果一个sessionscoped bean观察到一个事件,我触发它时是否会通知每个用户的每个sessio
..
假设我们有以下类 公共抽象类AbstractFoo { @PostConstruct private void doIt(){ // } } 公共类Foo扩展AbstractFoo { @PostConstruct private void doIt(){ // } } 何时调用AbstractFoo.doIt()和Foo.doIt()
..
我试图在我的应用程序中实现注销,所以我这样做了: public String logout(){ try { FacesContextfacesContext = FacesContext.getCurrentInstance(); ExternalContext ex = facesContext .getExternalContext(); ex.invalidateSe
..
LoggerProducer.java 是用于生成要通过以下方式注入CDI bean的Logger的类: @Inject Logger LOG; 完整代码: import javax.ejb.Singleton; / ** * @author rveldpau * / @Singleton 公共类LoggerProducer { 私
..
我目前没有群集环境,但是我对群集环境中的 @ApplicationScoped 行为感到好奇。 我已经读到 @Singleton 在每个JVM中创建code> 解决方案 是对 @ApplicationScoped 的引用,因此CDI容器可以正确地解决它们。无论应用程序中有多少个节点,这都是正确的。状态和实例在所有客户端请求中共享。
..
来自Guice背景,我知道可以从使用范围的对象中播种对象。 范围.seed(Key.get(SomeObject.class),someObject); 我想可以通过注册一个从 AbstractBoundContext ,但是似乎很难找到仅从“自定义范围”播种一个值的示例。我如何创建自定义范围并植入可以在其他地方注入的值? 编辑: 我目前正在使用按照以下解决方
..
我正在尝试使用JSF和Weld CDI配置Jetty。遵循此手册之后,我偶然发现了以下堆栈跟踪: 原因:java.lang.IllegalStateException:未为STATIC_INSTANCE设置单例=> [] org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider $ RegistrySingleton.get
..