- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
据我所知,要使用@Annotations(或 C# 中的 [Attributes]),您必须引用类元数据,以便您可以询问该类是否被注释(属性化)。
我的问题是 JSF 实现如何找到所有用 @ManagedBean 注释的类?它是否扫描类路径中的所有类?或者是否有一种方法可以实际“查询”JVM 以获取带注释的类?
我问这个是因为当我将带注释的支持 bean 直接放在我的 web 项目中时,没有问题。但是我在 JAR 文件中定义的 beans(可跨项目重用)没有注册。有什么我必须告诉 MyFaces 以指示它查看哪些 JAR 文件吗?
此外,使用注释引入了许多不错的编程模式。我想知道我是否能以某种方式找到所有带注释的类...
最佳答案
My question is how does JSF implementation find all classes annotated with @ManagedBean? Does it scan all of the classes in the class path? Or is there a way to actually "query" the JVM for the annotated classes?
首先浏览 com.sun.faces.application.annotation.AnnotationManager
在 Mojarra来源。请注意,这不是 API 的一部分,而是特定于实现的。
如果您打算在自己的项目中使用此类工具,我建议使用 Reflections为此而不是在家里种植它。
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(SomeAnnotation.class);
在 Java EE 环境中,更好的做法是改用 CDI。
I'm asking this because when I put my annotated backing beans in my web project directly, there's no problem. But the beans that I define in the JAR files (to be reusable across projects) are not registered. Is there something that I have to tell MyFaces to direct it which JAR files to look at?
要让 JSF 从 JAR 文件加载任何带注释的托管 bean,您必须将 /META-INF/faces-config.xml
JAR 文件中的文件。只是一个 JSF 2.0 兼容 <faces-config>
声明足以让 JSF 扫描 JAR 文件以查找任何有趣的注释类。如果/META-INF/faces-config.xml
文件不存在于 JAR 文件中,则 JSF 将不会扫描 JAR 文件以提高加载性能。
这是最低 JSF 2.0 兼容的方式 faces-config.xml
文件看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
将其存储在 META-INF
中JAR 的文件夹。
这是JSF 2.0 specification的第11.4.2章中描述的方式.
11.4.2 Application Startup Behavior
...
This algorithm provides considerable flexibility for developers that are assembling the components of a JSF-based webapplication. For example, an application might include one or more custom UIComponent implementations, along withassociated Renderers, so it can declare them in an application resource named “/WEB-INF/faces-config.xml”with no need to programmatically register them with Application instance. In addition, the application might chooseto include a component library (packaged as a JAR file) that includes a “META-INF/faces-config.xml” resource.The existence of this resource causes components, renderers, and other JSF implementation classes that are stored in thislibrary JAR file to be automatically registered, with no action required by the application.
关于java - JSF 如何找到用@ManagedBean 注释的bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717376/
所以`MKAnnotation's。有趣的东西。 我的问题: 注释的标题和副标题有什么区别?这对注释的视觉组件有何影响? MKPinAnnotationView 和 MKAnnotationView
我正在使用 JBoss 工具将 DB 模式反向工程到 POJO 中。具体来说,我在 hibernatetool ANT 任务中使用了 hbm2java 选项。在 hbm2java 选项下,您可以指定
假设我有这段文字: cat file /* comment */ not a comment /* another comment */ /* delete this * /* multiline
我明白,如果你///在类、字段、方法或属性上方 Visual Studio 将开始为您建立 XML 样式的注释。 但是,我在哪里可以为我的命名空间和/或库添加 XML 注释... 例如: .NET F
int API_VERSION = 21; @TargetApi(API_VERSION)在Android中用于指定该方法/类支持API_VERSION及以下。 我们是否可以镜像类似的东西,指定仅支持
Closed. This question needs to be more focused。它当前不接受答案。
假设我有一个界面如下。 public interface MyInterface{ /** * This method prints hello */ void sayHello();
我已将 Jboss 应用程序迁移到 WebSphere Liberty。我必须删除所有 Jboss 引用库。在这样做的同时,我在某些注释中面临问题。 Jboss 应用程序使用 @SecurityDom
在本教程中,您将了解 JavaScript 注释,为什么要使用它们以及在示例的帮助下如何使用它们。 JavaScript 注释是程序员可以添加的提示,以使代码更易于阅读和理解。JavaScri
我正在建立一个博客,为了发表评论,我有这个 CSS。 #comments { position:absolute; border: 1px solid #900; border-width: 1
我正在尝试在单元格中插入评论。我正在尝试按照代码进行评论,但它没有在创建的 excel 中显示评论。我正在创建 .xls 扩展名。 $objPHPExcel->getActiveSheet()->ge
我正在使用 TS 在 MarionetteJS 上编写项目,我想使用注释来注册路由。例如: @Controller class SomeController { @RouteMapping("so
我有一个应用程序可以在页面上生成大量注释。用户可以单击页面上的任意位置以创建快速注释(例如 Acrobat Pro)可以在一般 中使用一些 javascript 行添加和删除这些注释
是否有 JavaScript 注释? 当然 JavaScript 没有它们,但是是否有额外的库或建议的语言扩展,例如 @type {folder.otherjsmodule.foo} function
Java 中注解的目的是什么?我有一个模糊的想法,认为它们介于注释和实际代码之间。它们在运行时会影响程序吗? 它们的典型用法是什么? 它们是 Java 独有的吗?有 C++ 等价物吗? 最佳答案 注解
其实我们在 Ruby 基础语法 已经比较详细的介绍了 Ruby 语言中的注释 Ruby 解释器会忽略注释语句 注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行。 Ruby 中的注
我正在 try catch VBA 注释。到目前为止,我有以下内容 '[^";]+\Z 它捕获以单引号开头但在字符串结尾之前不包含任何双引号的任何内容。即它不会匹配双引号字符串中的单引号。 dim s
有没有办法在'svn commit'上将提交注释添加到更改的文件中。有人告诉我有一种方法可以用 cvs 做到这一点,但我们使用 svn。目前,我们使用“$Revision”关键字将修订号添加到更改的文
我正在尝试通过 ManyToMany 注释自动对报告的结果进行排序 @OrderBy : /** * @ORM\ManyToMany(targetEntity="Artist", inversedB
我正在使用 JBoss 5 GA,我创建了一个测试 session bean 和本地接口(interface)。我创建了一个 servlet 客户端。我尝试使用 @EJB 将接口(interface)
我是一名优秀的程序员,十分优秀!