jjzjj

java - 代理的原始类名(没有手动字符串操作)

在Java中,如何获取JavaEE(CDI)代理的原始类对象和/或类名?在代理实例上使用getName()时,返回的名称类似于com.company.employeemgmt.EmployeeManager$Proxy$_$$_WeldSubclassJavaSE(7)或EE(6)中是否有一些功能可以返回原始的、未代理的类实例或其名称?我需要:com.company.employeemgmt.EmployeeManager当然,我可以简单地使用字符串操作,但我想知道这种功能是否已经内置在Java-(EE)中。我已经找到了java.reflect.Proxy,我可以用它来检测代理:pub

java - Mockito 和 CDI bean 注入(inject),@InjectMocks 调用@PostConstruct 吗?

我有这个代码:classPatient{@InjectSyringesyringe;@PostConstructvoidsayThankyouDoc(){System.out.println("Thathurtlikecrazy!");}}@RunWith(MockitoJUnitRunner.class)classTestCase{@MockSyringesiringeMock;@InjectMocksPatientpatient;//...}我希望Mockito调用PostConstruct,但我不得不添加:@Beforepublicvoidsimulate_post_constr

java - JSF CDI : Conversation scope bean[s] best practice

我目前正在学习JSF2.0,我很高兴这个对话范围功能的存在,这对于在同一页面上打开一个新选项卡或一个新窗口并拥有单独的资源非常有帮助,而不是相互覆盖.但我很好奇如何以一种好的方式实现这一点,关于何时开始对话以及何时结束对话。在我的例子中,我有每个JSF页面的每个CDIbean。假设我有一个菜单,当它被点击时,这将导致页面A,并且从A可能导致B,B可能导致C,C可能导致D,所有这4个页面都连接在一个页面上链。可以从B或C或Dbean访问A的bean属性,也可以从C或Dbean访问B的属性等等。现在我很困惑:是否所有这些ABCD应该是是否在对话范围内,或者也许只是一个?因为我觉得有时来自另

java - 使用 Java、CDI 和 MongoDB 的高性能服务

我正在使用JavaEE7和MongoDB编写实时数据服务。该服务应具有高度可扩展性。关于线程安全和避免瓶颈的持久层最佳实践是什么?现在我有这样的东西:@ApplicationScopedpublicPersistanceLayer{@PostContructpublicvoidconnectToDb(){//Connecttodb}publicListgetStuffFromDb(){return...;}}@ApplicationScoped的线程安全性如何?这会成为@ApplicationScoped的性能瓶颈吗?与为每个请求连接到数据库的开销相比,性能如何?@RequestSco

mongodb - 用于 CDI 的 wildfly 8 中的自定义 jndi 对象工厂

我正在尝试使用CDI为wildfly8注入(inject)jndi资源。为此,我想使用在https://github.com/juanlmelo/mongo-jndi-plugin/中开发的自定义jnidfactory。问题是由于我对wildfly的了解有限,我不知道以下内容。1)如何在wildfly中激活/附加这个jndifactory,当然我可以在启动时创建一个对象并以编程方式为其分配一个jndi名称,但想探索wildfly的自定义工厂功能2)设置对象工厂所需的uri属性的最佳实践,我假设在工厂内部使用System.getProperty就足够了,因为每个安装的DBuri都是不同的

CDI,多态性:是否可以根据A的@PostConstruct在A的@PostConstruct中初始化的字段中注入Bean B的实现?

在我的JSF应用程序中,我正在使用@ViewScoped豆Publication显示/编辑数据来自我的数据库。在那个豆子中,有一个特定于亚型的数据对象的字段,即包含一个不同的对象,具体取决于出版物是书籍还是文章。@ViewScoped@NamedpublicclassPublicationimplementsSerializable{@InjectDatabaseStoragestorage;...Stringid;Stringtype;PublicationTypetypedStuff;@PostConstructpublicvoidinit(){//GetanURLparameterfro

javaee cdi和jaxrs注入@provider给出了不舒适的dependencyException

我有一个JAXRS提供商:@Provider@Priority(Priorities.AUTHENTICATION)publicclassAuthFilterimplementsContainerRequestFilter{@InjectprivateAuthSecurityContextauthSecurityContext;//...}和我的SecurityContext实施:@RequestScopedpublicclassAuthSecurityContextimplementsSecurityContext{//...}我正在使用玻璃鱼作为我的容器,但它抛出了以下例外:2017-06

java - CDI 的受限泛型

JSR-299规范在§3.1中指出:Ifthemanagedbeanclassisagenerictype,itmusthavescope@Dependent.Ifamanagedbeanwithaparameterizedbeanclassdeclaresanyscopeotherthan@Dependent,thecontainerautomaticallydetectstheproblemandtreatsitasadefinitionerror.实际上意味着你不能这样做:@Named@SessionScopedor@RequestScopedorsimilarpubliccla

java - 如何在生产中使用 CDI 测试类时注入(inject)模拟

我在JavaSE环境中使用WELD-SE进行依赖注入(inject)编程。因此类的依赖看起来像这样:publicclassProductionCodeClass{@InjectprivateDependencyClassdependency;}在为此类编写单元测试时,我正在为DependencyClass创建一个模拟,因为我不想为我运行的每个测试启动一个完整的CDI环境,所以我“注入(inject)”了模拟手动:importstaticTestSupport.setField;importstaticorg.mockito.Mockito.*;publicclassProduction

java - CDI 对象不能用注入(inject)的构造函数代理

当尝试将参数注入(inject)CDIbean(ApplicationScoped)的构造函数时,我遇到了以下问题:Causedby:org.jboss.weld.exceptions.UnproxyableResolutionException:WELD-001435:Normalscopedbeanclassxx.Configisnotproxyablebecauseithasnono-argsconstructor-ManagedBean[classxx.Config]withqualifiers[@Default@Named@Any].atorg.jboss.weld.bean