关于CDI 的 inject。
在java 官方的陈述中, 要用inject, 需要满足以下的条件:
1.To use @Inject, the first thing you need is a META-INF/beans.xml file in the module or jar。
注意的是,所谓的inject, 只有在container 中谈才有意义,离开容器,就没有用武之地了。
关于 CDI Interceptor。
CDI Interceptor 注解的基本用法:
1.创建注解
@InterceptorBinding
@Target({ TYPE, METHOD })
@Retention(RUNTIME)
public @interface Log {
}
2.创建 Interceptor class:
@Interceptor
@Log //binding the interceptor here. now any method annotated with @Log would be intercepted by logMethodEntry
public class LoggingInterceptor {
@AroundInvoke
public Object logMethodEntry(InvocationContext ctx) throws Exception {
System.out.println("Entering method: " + ctx.getMethod().getName());
//or logger.info statement
return ctx.proceed();
}
}
以上两步注意 @InterceptorBinding, @AroundInvoke and @Interceptor 的用法。
3. 使用这个注解在其他地方,用在class 和 method 上。
4. 启用拦截器:
<beans>
<interceptors>
<class>org.superbiz.cdi.bookshow.interceptors.LoggingInterceptor
</class>
</interceptors>
</beans>
关于CDI @RequestScoped
对于requestScoped 的对象,每次请求都会生成一个对象。
“This means that an instance will be created only once for every request and will be shared by all the beans injecting it.”
关于 @ApplicationScoped
对于 @ApplicationScoped 对象,每个application 只会生成一个对象。
An object which is defined as @ApplicationScoped is created once for the duration of the application.
分享到:
相关推荐
JavaEE-Study-Notes (JavaEE 学习笔记) 用于记录 JavaEE 学习过程中的笔记 知识点预览(个人学习要求) 1.1 JavaSE 基础部分: 1.2 FrontEnd 前端部分: 1.3 Database 数据库部分: 1.4 JavaWeb: JSP/Servlet ...
JavaEE-Study: java的学习时间表是一条精心设计的Java编程学习路径,旨在帮助初学者或有经验的开发者系统地掌握Java技术栈,特别是JavaEE(企业版)的相关知识。这个学习路线通常会涵盖从基础到高级的多个层面,包括...
JavaEE中文语言包是专为Java企业版(Java Enterprise Edition,简称JavaEE)开发者设计的,旨在帮助那些希望在Eclipse集成开发环境中使用中文界面的用户。Eclipse是一款广泛使用的开源IDE,支持多种编程语言,其中...
在这个"Study_Day10.rar"压缩包中,我们可以找到一系列的Java练习代码,这些代码旨在帮助学习者深入理解类的定义、对象的创建、实例变量以及实例方法的使用。 首先,类的定义是Java面向对象编程的基础。类是一种...
6. **JTA(Java Transaction API)**:Java事务API定义了如何在分布式环境中管理事务,确保跨多个系统的操作一致性。 7. **JSF(JavaServer Faces)**:这是一种用于构建用户界面的组件模型,提供了一套标准的UI...
《JavaEE技术体系详解——基于"study-manager.zip"项目实践》 在IT行业中,JavaEE作为企业级应用开发的重要平台,被广泛应用于大型系统构建。本文将深入探讨JavaEE技术体系,并结合"study-manager.zip"项目,解析其...
6. **Maven或Gradle构建工具**: 在JavaEE项目中,经常使用Maven或Gradle进行构建和依赖管理。Maven通过POM.xml文件定义项目依赖关系,自动下载并管理库文件。Gradle则提供更大的灵活性和更高的性能,支持复杂的构建...
6. **JNDI(Java Naming and Directory Interface)** JNDI提供了一种查找和绑定资源的方式,如EJB、数据源等,增强了系统的可扩展性和可管理性。 7. **JavaMail** JavaMail API用于在Java应用程序中发送和接收...
综上所述,"study-web-front.zip"这个压缩包可能是对JavaEE Web前端开发的一份全面学习资料,涵盖从基础到进阶的各种技术点,对于想要深入理解Web前端开发的初学者或进阶者来说,都是非常宝贵的学习资源。...
CaseStudy-2-5.zip和CaseStudy-6.zip可能是对Java EE基础概念的介绍,包括HTTP协议、MVC设计模式的理解,以及如何搭建Java EE开发环境。这些章节的源码可以帮助初学者建立坚实的基础,为后续的学习打下良好根基。 ...
java ee笔试题 :sparkling_heart:说明 :hot_beverage:Java基础 :open_book:Java容器 :memo:多线程 :skis:设计模式 ...:dollar_banknote:Servlet+Tomcat :ledger:JSP :microscope:监听器和过滤器 ...:top_hat:数据结构+算法
6. **测试**:JUnit测试用例,用于验证代码的功能正确性。 7. **构建文件**:如pom.xml(Maven)或build.gradle(Gradle),用于自动化构建、依赖管理和打包应用。 通过这个项目,你可以学习到如何在Java EE环境中...
JavaEE 2. 代码 类型 项目 Java java-demos 面试题 interview-questions 算法 algorithm 设计模式 design-mode SpringBoot springboot-demo01 [SpringBoot + Mybatis]springboot-demo02 [SpringBoot + Spring Data ...
《Sun Certified Enterprise Architect for Java EE Study Guide Exam 310-051》是一本针对Sun Microsystems(现已被Oracle收购)认证的企业架构师考试的重要学习资料。这本书详细介绍了如何准备Java企业版(Java EE...
研究Java EE 6 Web Services开发人员认证专家1Z0-897 / OCEJWSD在Servlet容器中创建Web服务在Servlet容器中创建RESTful Web服务在Servlet容器中创建SOAP Web服务创建由EJB组件实现的Web服务创建由EJB组件实现的...
gistry.addResourceHandler("/images/**").addResourceLocations("file:F:/Study/Book6/JavaEE/images/"); //修改为你的绝对路径 ``` ```java public class FileUpload String filePath = "F:\\Study\\Book6\\...
Application_Design_Concepts_and_Principles Common_Architectures Integration_and_Messaging Patterns Security
JavaEE进阶知识学习-----SpringCloud学习总结 前端基础知识学习---Vue.js学习总结 JavaEE基础知识学习-----Mysql学习总结 2018年07月06日学习记录 JavaEE日常工作经验总结系列(一)-----Java8优雅去重 JavaEE日常...
JavaEE(Java Enterprise Edition)则涵盖了企业级开发所需的技术,如Servlet、JSP、EJB、JPA等。 JavaStudy还可能涵盖了单元测试和持续集成的内容,如JUnit用于编写和运行Java的单元测试,Maven或Gradle作为项目...
JavaStudy是一个涵盖广泛的Java学习资源集合,可能包括代码示例、教程文档以及相关的JavaScript学习资料。这个压缩包可能旨在帮助初学者和有一定经验的开发者深入理解Java编程语言,并且通过结合JavaScript的知识,...