EJB实例教程笔记(三)
电子书EJB3实例教程byLiHuoming.pdf笔记
2.11 依赖注入(dependency injection)
在 传统的开发中,我们要使用某个类对象,可以通过new object来得到。但是在EJB中,需要通过JNDI查找或注入注释。
接口类Injection.java:
package com.sillycat.ejb;
public interface Injection {
public String sayHello();
}
EJB类InjectionBean.java如下:
package com.sillycat.ejb.impl;
import javax.ejb.EJB;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import com.sillycat.ejb.HelloWorld;
import com.sillycat.ejb.Injection;
@Stateless
@Remote(Injection.class)
public class InjectionBean implements Injection{
@EJB (beanName="HelloWorldBean") HelloWorld helloWorld;
public String sayHello() {
return helloWorld.SayHello("注入类");
}
}
其中的@EJB beanName引入类另外一个EJB,helloBean。
我的测试类InjectionTest.java如下:
package com.sillycat.ejb;
import javax.naming.InitialContext;
import org.junit.BeforeClass;
import org.junit.Test;
public class InjectionTest {
protected static Injection injection;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
InitialContext ctx = new InitialContext();
injection = (Injection) ctx.lookup("InjectionBean/remote");
}
@Test
public void testSayHello() {
injection.sayHello();
}
}
@EJB注释除了可以标注字段,还可以标示到属性的setter方法上,比如替换成如下写法:
private HelloWorld helloWorld;
@EJB(beanName = "HelloWorldBean")
public void setHelloWorld(HelloWorld helloWorld) {
this.helloWorld = helloWorld;
}
如果注入的EJB在不同的jar,那么装载次序就有要求,不然要报找不到类。需要修改配置文件:
JBOSS_HOME/server/default/conf/jboss-service.xml找到里面的
<!--
<attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
-->
<attribute name="URLComparator">org.jboss.deployment.scanner.PrefixDeploymentSorter</attribute>
然后给jar文件编号,格式为:01_XXXX.jar, 02_XXXX.jar,JBOSS将根据编号从小到大的顺序发布。
2.11.1 资源类型的注入
注入DataSource
@Resource(mappedName="java:/DefaultMySqlDS") DataSource myDb;
注入DataSource带验证
@Resource(mappedName="java:/DefaultMySqlDS",authenticationType=AuthenticationType.APPLICATION) DataSource myDB
使用的时候要这样:
Connection conn = null;
conn = myDb.getConnection("root","*****");
注入事物类
@Resource private javax.transaction.UserTransaction utx;
注入时间服务
@Resource private javax.ejb.TimerService tms;
注入SessionContext
@Resource private javax.ejb.SessionContext ctx;
注入消息工厂
@Resource(mappedName="QueueConnectionFactory")
private javax.jms.QueueConnectionFactory factory;
注入消息连接地址
@Resource(mappedName="queue/mail")
private javax.jms.Queue queue;
2.11.2 注入与继承关系
InjectionBean注入了HelloWorld
那么public class SubInjectionBean extends InjectionBean 会默认也注入HelloWorld
2.11.3 自定义注入注释
2.12 定时服务(Timer Service)
分享到:
相关推荐
而`ejb.rar`可能包含了一些EJB实例代码,包括bean类、接口、部署描述符文件以及可能的测试用例。 通过学习这些资料,开发者不仅可以了解EJB的基本概念,还能掌握实际开发中如何创建、部署和管理EJB组件,从而提升在...
EE5实现规范 博文链接:https://aflyer.iteye.com/blog/141223
在【ejb笔记1.doc】和【ejb笔记2.doc】中,你可能会找到更多关于EJB的详细教程,包括如何配置EJB项目、编写Bean组件、调用EJB服务以及如何将它们集成到Java EE应用程序中的实例。这些笔记将深入探讨EJB的核心概念、...
里面是搜集的EJB学习资料,有《Jboss EJB3.0实例教程》和《EJB3.0实例教程》两本pdf书籍,以及两本外文pdf书籍及源码,分别为ejb-3_0-fr-spec-persistence.pdf和ejb-3_0-fr-spec-simplified.pdf,以及EJB课堂笔记....
8. **EJB实例教程**: - 提供的教程如“EJB学习笔记.docx”、“精通EJB3.0.pdf”等,通常涵盖了EJB的基本概念、组件使用、部署配置以及最佳实践。 9. **源码分析**: - “EJB3.0实例教程(含源码).rar”提供了...
这份"java 核心技术教程笔记"的PDF文档,很可能是对以上这些内容的详细讲解和实例演示,对于学习和提升Java编程能力,特别是J2EE应用开发方面,将是一份宝贵的资源。通过深入学习并实践其中的知识点,你将能够熟练地...
"SD0711_EJB_Note_All"这个文件名可能指的是一个完整的EJB 3.0教程或笔记集合,它可能会涵盖EJB 3.0的所有主要概念、API使用、实战案例和最佳实践。通过深入学习这个资料,你可以全面了解EJB 3.0,掌握企业级应用...
在EJB_11185613这个文件中,很可能包含了关于EJB的详细教程,涵盖了上述的所有概念和技术。学习这个教材,你将了解如何设计和实现EJB组件,如何在J2EE环境中部署和使用它们,以及如何利用EJB来构建高可用、高性能的...
【Java编程基础】 ...以上是黑马Java教程知识点笔记的主要内容,涵盖了Java编程的基础到进阶知识,是学习和巩固Java技能的重要参考资料。通过深入理解和实践这些知识点,开发者可以逐步提升Java编程能力。
这些资料可能包括教程、讲座笔记、演示文稿或视频课程,旨在帮助学习者快速入门并逐步提升技能。 “查找例子分析学习的好教材”意味着这些资源不仅提供了基础知识,还鼓励学习者通过分析和修改现有的代码示例来提高...
该资源分为三部分,分别是Java高手真经(高级编程卷):Java Web高级开发技术读书笔记模板、Java Web企业级开发技术EJB和Java Web高级开发技术 frameworks与开源技术。 Java高手真经(高级编程卷):Java Web高级...
此文件可能包含PPT课件、PDF教程、源代码示例或者更多笔记,旨在帮助学习者了解和实践javaEE的相关技术。 知识点详细说明: 1. **JavaSE**:JavaSE是Java的基础,它提供了编写各种类型应用程序所需的类库,如基本...
这份详尽的教程以清晰易懂的PDF文档形式呈现,旨在帮助新手快速掌握JAVA编程语言的核心概念和实用技巧。 在JAVA学习过程中,首先会接触到的是基础语法,包括变量、数据类型、运算符以及控制流程。JAVA支持基本的...
"JavaEE学习笔记.pdf" JavaEE(Java Enterprise Edition)是Java平台的企业版,用于开发大型...JavaEE学习笔记.pdf提供了JavaEE的基础知识、技术栈、开发工具、应用场景、学习资源、面试常见问题和应用实例等内容。
13. **Java EE**:如果深入学习,Java EE(企业级应用)涵盖了Web开发、数据库连接(JDBC)、Servlet、JSP、EJB等技术,为构建大型分布式系统提供支持。 这些笔记将详细解析以上知识点,帮助读者逐步掌握Java编程,...
这可能是一个文档或笔记的集合,由Cernet(中国教育和科研计算机网)的成员或与之相关的个人或组织创建,内容可能包含了对上述技术的详细解释、实例代码、学习心得等。 综合以上信息,这个压缩包是一个全面的Java...
【Java学习笔记】是专为初学者设计的一套详尽教程,旨在引领新手步入Java编程的广阔天地。这个资源包,名为"Java学習筆記",包含了丰富的学习材料,帮助初学者逐步掌握Java语言的基础知识和核心概念。 首先,Java是...
在这一部分,你可能会找到关于如何定义类、创建对象以及如何通过方法实现功能的实例。此外,异常处理、集合框架(如ArrayList、LinkedList和HashMap)以及IO流也是基础学习的重要组成部分。 其次,Java整合技术可能...
2. **J2EE全实例教程**:J2EE(Java 2 Platform, Enterprise Edition)是Java平台上的企业级应用开发标准,包括Servlet、JSP、EJB等组件。全实例教程可能包含了实际项目中的应用场景,让你通过实践理解各个组件的...
本教程中的《j2ee经典学习笔记.pdf》应包含上述知识点的详细讲解和实例分析,是初学者和进阶者学习J2EE的宝贵资料。通过深入学习和实践,你可以掌握构建复杂企业级应用所需的技术,为职业发展打下坚实基础。