gpt4 book ai didi

java - Seam - 列出所有组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:55 26 4
gpt4 key购买 nike

我想获得所有组件的列表,以便我可以进一步处理它们。这可能吗,如果可以,我该怎么做?我不相信我可以观察到所有 postCreate 事件,因为它只是一个精确匹配而不是一个正则表达式。

@Observer("org.jboss.seam.postCreate.")

您只能观察这些事件而不能 * 因为它被放入一个键为字符串的映射中。

有什么想法吗?

沃尔特

最佳答案

如前所述

I would like to get a list of all the components

对于声明为组件的每个类,Seam 创建一个组件定义并将其隐藏在应用程序范围内。它的命名约定遵循模式

  • .component

所以你可以使用

/**
* Metamodel class for component classes
*
* Similar to org.springframework.beans.factory.config.BeanDefinition used by Spring
*/
org.jboss.seam.Component

Context context = Contexts.getApplicationContext();
for (String name: context.getNames()) {
Object object = context.get(name);
if(object instanceof org.jboss.seam.Component) {
Component component = (Component) object;

System.out.println(component.getName());
System.out.println(component.getType());
System.out.println(component.getScope());
System.out.println(component.getTimeout());
System.out.println(component.isStartup());
System.out.println(component.isSynchronize());
}
}

如果要检索所需的组件,可以使用

Object object = Component.getInstance(component.getName());

关于java - Seam - 列出所有组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com