是否可以在 Java SE 环境中使用 javax.interceptor ?

2023-11-26

我需要使用 AOP 来解决特定问题,但它是一个小型独立 Java 程序(没有 Java EE 容器)。

我可以用吗javax.interceptor功能,还是我必须下载一些第 3 方 AOP 实现?如果可能的话,我宁愿使用 Java SE SDK 附带的内容。


您可以在 Java SE 中使用 CDI,但必须提供自己的实现。以下是使用参考实现 - Weld 的示例:

package foo;
import org.jboss.weld.environment.se.Weld;

public class Demo {
  public static class Foo {
    @Guarded public String invoke() {
      return "Hello, World!";
    }
  }

  public static void main(String[] args) {
    Weld weld = new Weld();
    Foo foo = weld.initialize()
        .instance()
        .select(Foo.class)
        .get();
    System.out.println(foo.invoke());
    weld.shutdown();
  }
}

类路径中唯一添加的是:

<dependency>
  <groupId>org.jboss.weld.se</groupId>
  <artifactId>weld-se</artifactId>
  <version>1.1.10.Final</version>
</dependency>

注释:

package foo;
import java.lang.annotation.*;
import javax.interceptor.InterceptorBinding;

@Inherited @InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface Guarded {}

拦截器实现:

package foo;
import javax.interceptor.*;

@Guarded @Interceptor
public class Guard {
  @AroundInvoke
  public Object intercept(InvocationContext invocationContext) throws Exception {
    return "intercepted";
  }
}

描述:

<!-- META-INF/beans.xml -->
<beans 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/beans_1_0.xsd">
    <interceptors>
        <class>foo.Guard</class>
    </interceptors>
</beans>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Java SE 环境中使用 javax.interceptor ? 的相关文章

  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 如何提前ServiceStack中的会话超时

    ServiceStack 中的身份验证 存储库和缓存提供程序提供了一种简单的方法来将登录会话添加到 Web 应用程序 几乎不需要任何额外的代码 我发现可以配置身份验证提供程序的会话超时 例如 new CredentialsAuthProvi
  • 如何更改 JBoss 7 java Web 服务中的肥皂地址

    如何更改网络服务中的肥皂地址 我正在开发 JBoss 7 1 1 我有这个网络服务类 WebService public class Card WebMethod public CardResponseDTO insertCard WebP
  • 文件获取内容不起作用?

    我正在使用cakephp 我正在尝试使用 file get contents 从 facebook 获取数据 我收到警告 警告 2 file get contents function file get contents URL 服务器中禁
  • 存储每日页面浏览量以及总浏览量的最有效方法

    关于在数据库中存储文章或视频的页面浏览量进行了很多讨论 但我似乎找不到任何有关存储每日页面浏览量的信息 例如 DeviantArt 在一个小图表中向您显示过去 15 天左右的时间以及每个人获得的页面浏览量 以及个人资料的总页面浏览量 您可以
  • 对列表中的元素求和[重复]

    这个问题在这里已经有答案了 这是我的代码 我需要对列表中未定义数量的元素求和 这个怎么做 l raw input l l split l pop 0 我的输入 3 5 4 9输入后我通过删除第一个元素l pop 0 After split
  • 重新排序sql server中的身份主键

    是的 我非常清楚后果 但我只是想重新排序它们 从1开始到结束 如何使用单个查询对键重新排序 它是聚集主键索引 重新排序就像 First record Id 1 second record Id 2 主键是 Int 删除PK约束 删除身份列
  • 错误:任务“:app:processDebugResources”执行失败。 > 在索引 4 处

    在最新 SDK 的修订版 2 更新后 我在构建项目时遇到问题 抱歉 我不记得版本号 我之前成功运行了代码 我不认为我的项目中有任何错误 我经常收到错误消息 因为 IDE 发生内部错误 与此有关 请帮忙谢谢 下面给出了所需的代码 应用程序 b
  • LLVM out of source pass build:不支持可加载模块(在 Linux 上)

    几周前 我在 debian wheezy 上从 trunk 编译并安装了 LLVM 配置和制作 现在尝试从源代码中编译llvm mutate 传递 AFAICC llvm mutate 遵循 cmake超出源通道构建说明 当尝试构建 llv
  • 防止按下后退按钮后重新提交表单

    我在这里的处境有点微妙 在我的组织中 我们设计库存管理系统 它是一个基于 JSP 页面和处理它们的 servlet 的 Web 应用程序 我被要求解决一个特定问题 我们有一个带有 HTML 表单的 JSP 页面 其中包含库存详细信息 当用户
  • 如何使用buildozer和最新的kivy构建kivy应用程序?

    使用 buildozer 我已经成功构建并运行了一个 Android 应用程序 Buildozer 使用 kivy stable 1 7 如何使用最新的 kivy 1 8 构建 kivy 应用程序 我注意到在https github com
  • Android Espresso 多重索引失败

    我们在应用程序中使用 multidex 很长一段时间 但最近最新更新后 它在 android API 如果我为缺少的类定义 multidexKeepProguard 例如 java lang NoClassDefFoundError rx
  • 使用 CSS 为透明文本添加阴影

    有没有办法添加一个阴影透明文本以便文本后面的背景保持可见 也许有某种方法可以使用文本本身作为掩码 或者文本混合模式 具有合理的跨浏览器支持 我天真的尝试 span background image url http i imgur com
  • VS Code 的文档/智能感知弹出窗口在鼠标悬停时消失

    将鼠标悬停在变量上后 我在滚动弹出框时遇到问题 它就这样消失了 我希望能够滚动浏览它 我在 Windows 10 x64 上使用带有 Python 扩展的 Visual Studio Code 1 41 1 Set editor hover
  • C# 是否支持返回类型的类型推断?

    这只是一个好奇心 是否有一个基本的事情可以阻止这样的事情 或者纠正我 如果已经有某种方法 public TTo Convert
  • 如何并行使用 Swift async/await

    考虑下面的代码 class UserProfile private var img UIImage didSet update ui private var bio String didSet update ui private func
  • 如何检查多维数组的任何子数组中的特定键是否存在特定值?

    我需要在多维数组中搜索任何索引子数组中的特定值 换句话说 我需要检查多维数组的单个列中的值 如果该值存在于多维数组中的任何位置 我想返回true否则false my array array 0 gt array name gt john i
  • 服务响应时间慢:Java SecureRandom 和 /dev/random [重复]

    这个问题在这里已经有答案了 我正在尝试调试 Tomcat 上部署的应用程序提供的一些缓慢响应 现在我专注于SecureRandom and dev random 已调查并排除了其他一些可能的原因 模式如下 第一次调用正好需要30 0Tomc
  • 如何使用 Spring Boot 将 json 映射到对象[重复]

    这个问题在这里已经有答案了 你好 我想知道如何在使用 Spring Boot 时将我的 json 消息映射到 java 中的对象 假设我得到的 json 类似 customerId 2 firstName Jan lastName Nowa
  • Dart 抛出和重新抛出有什么区别?

    这可能是显而易见的 但我仍然无法理解两者之间的区别throw and rethrow什么时候应该使用其中任何一个 根据有效飞镖 如果您决定重新抛出异常 最好使用rethrow语句而不是使用抛出相同的异常对象throw rethrow保留异常
  • 是否可以在 Java SE 环境中使用 javax.interceptor ?

    我需要使用 AOP 来解决特定问题 但它是一个小型独立 Java 程序 没有 Java EE 容器 我可以用吗javax interceptor功能 还是我必须下载一些第 3 方 AOP 实现 如果可能的话 我宁愿使用 Java SE SD