cdi相关内容
在注入任何服务时,我有两个选择: 场注入: @Inject私人 MyService myService; 或构造函数注入: 私有MyService myService;@注入公共 ClassWhereIWantToInject(MyService mySerivce){this.myService = myService;} 为什么构造函数注入优于字段注入? 解决方案 我发
..
我有一个会话范围的 bean import javax.faces.bean.SessionScoped;导入 javax.inject.Named;@命名@SessionScoped公共类 SessionBean 实现了 Serializable{ 我在一个过滤器中输入对象... 公共类 FiltroSeguridad 实现过滤器{@注入私有 SessionBean sessionBean
..
我想创建一个 Spring 的 bean 生产者方法,它知道是谁调用了它,所以我从以下代码开始: @Configuration公共类 LoggerProvider {@豆角,扁豆@Scope("原型")公共记录器produceLogger() {//知道是什么 bean/组件调用了这个生产者类克拉兹 = ...返回 LoggerFactory.getLogger(clazz);}} 我如何获得
..
Spring 的 @Autowire 可以配置为如果没有找到匹配的自动装配候选者,Spring 不会抛出错误:@Autowire(required=false) 是否有等效的 JSR-330 注释?如果没有匹配的候选人,@Inject 总是失败.有什么办法可以使用 @Inject 但如果没有找到匹配的类型,框架不会失败?我还没有找到任何相关的文档. 解决方案 不... JSR 330
..
我在这里找不到任何合理的答案,所以我希望它不是重复的.那么为什么我更喜欢 setter 或构造函数注入而不是简单的 @Inject我的豆豆; 如果您需要在类初始化期间对注入的 bean 执行某些操作,我会使用构造函数注入,例如 public void MyBean(@Inject OtherBean bean) {doSomeInit(bean);//我现在不需要使用@PostConstru
..
我正在将应用程序迁移到 Java EE 7 并希望迁移到 CDI 1.1.但我不明白 bean-discovery-mode="annotated" 的意思.这CDI 1.1 规范 不是很有帮助.至少我没有找到任何有用的段落.我错过了吗? 这个例子与 bean-discovery-mode="all" 完美运行,并注入了一个 LoggingClass 的实例: public class L
..
如何以编程方式将 Java CDI 1.1+ 托管 bean 注入静态方法中的局部变量? 解决方案 注入C类的实例: javax.enterprise.inject.spi.CDI.current().select(C.class).get() 这在 CDI 1.1+ 中可用
..
我知道有很多文章解释了如何在 Java EE 中使用 CDI,但我无法弄清楚这实际上带来了什么优势.例如,假设我有一个当前使用 Foo 实例的类.我可能会这样做 Foo myFoo = new Foo(); 或 //更好的是,FooFactory 可能会返回一个模拟对象进行测试Foo myFoo = FooFactory.getFoo(); 我一直在阅读我可以使用 CDI 做的事情: @
..
场景:1)创建maven ear工程,里面创建war工程2) 将 beans.xml 添加到 war 项目的 WEB-INF/3) 创建简单的@Steateless bean 项目 - http://drp.ly/1j5C3t ejb 豆: @Stateless@LocalBean公共类 TestEjb {@注入记录器日志;公共 TestEjb() {}@Schedule(小时 =
..
最近从 2.2 升级到 JSF 2.3,我注意到 @ManagedBean 已被弃用,经过一些研究发现我应该使用 CDI-1.2 托管 bean 和 @Named 注释. 但是在切换到@Named 之后,JSF 页面找不到托管 bean: javax.servlet.ServletException:/index.xhtml @38,38 value="#{controller.tel
..
我正在阅读 JBoss 其中使用 @RequestScoped bean 备份 JSF 页面 用于传递用户凭据信息,然后将其保存在 @sessionScoped bean 中.以下是来自 JBoss 文档的示例. @Named @RequestScoped公共类凭据{私人字符串用户名;私人字符串密码;@NotNull @Length(min=3, max=25)公共字符串 getUsername
..
在我正在构建的应用程序中,我们直接使用 Java 6 EE 和 JBoss(没有 Spring 等),以及 JPA/Hibernate、JSF、CDI 和 EJB. 我没有找到很多好的通用安全解决方案(欢迎推荐),但我发现最好的选择是 Apache Shiro. 然而,这似乎有许多缺点.您可以在 Balus C 的 网站: http://balusc.blogspot.com/2
..
我需要编写一个 bean 来作为它被访问次数的计数器. 我正在考虑将 @ApplicationScoped bean 与 AtomicInteger 一起使用 @ApplicationScoped类访问计数器{私有 AtomicInteger 计数器;@PostConstruct公共无效构造(){counter = new AtomicInteger(0);}公共 int 访问(){返回
..
首先我要澄清一下,这篇文章不是要批评 CDI,而是要发现 CDI 设计背后的思想和假设,这将对设计任何使用 CDI 的 Web 应用程序产生明显影响. CDI(Java EE 6)最显着的特性之一是类型安全.Jboss Seam 字体不安全.它使用名称来限定要注入的任何实例.如下图: @Name("myBean")公共类 MyBean 实现 Bean {...}@Name("你的豆子")
..
我想创建一个生产者,它可以将 java.util.ResourceBundle 注入任何类,以便轻松获取本地化的字符串.我的 ResourceBundle-Producer 如下所示: 公共类ResourceBundleProducer {@注入公共语言环境;@注入公共 FacesContext facesContext;@Produces公共资源包 getResourceBundle() {r
..
我正在尝试从我的 wildfly 配置文件夹中的属性文件中读取部署特定信息.我试过这个: @Singleton@启动公共类部署配置{受保护的属性道具;@PostConstruct公共无效读配置(){道具 = 新属性();尝试 {props.load(getClass().getClassLoader().getResourceAsStream("my.properties"));} catch
..
我是 Java EE 新手.我想测试JSF,因此做了一个简单的程序,但无法部署它.我收到以下错误消息: 无法部署 onlineshop-war部署失败=部署过程中发生错误:加载应用程序时出现异常:CDI 部署失败:WELD-001408:不满足类型 Customer 的依赖关系,带有限定符 @Default在注入点 [BackedAnnotatedField] @Inject private d
..
这可能吗: @Inject@MessageTransport(MessageTransportType.SMS)公共静态 MessageSender messageSender; 当我试图访问这个静态变量时,我得到了一个 NPE.所以我想知道,如果一般情况下不可能. 提前致谢. 解决方案 一般不做,因为静态变量不能有作用域,即它只是整个类的一个(读取应用程序),因此没有意义因为每
..
我正在使用如下代码: 公共配置{private boolean isBatmanCar = someMethod(...);@Producespublic Car getCar(@New Car car) {如果(是蝙蝠侠汽车){car.setName("蝙蝠侠汽车");}还车;}}公车{私人字符串名称 = "NormalCar";公共无效集名称(字符串名称){this.name = 名称;}}
..
是否可以将请求范围的 CDI bean 注入无状态会话 bean 中? 我问了一个相关的问题,并认为具体的 CDI @RequestScoped 到 @Stateless 问题值得自己发表. 在 EJB 方法/@RequestScoped 和 @Stateless 之间传递状态 我也问了一个关于 JMS @MessageDriven beans 的类似问题 - 基本上想知道关于
..