当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

EJB 3.0开辟指南之依靠注入[Java编程]

赞助商链接



  本文“EJB 3.0开辟指南之依靠注入[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

依靠注入(Dependency Injection),又称作掌握反转(IOC),本来是一种计划情势,目前被吵得热火朝天,有点过了.对比闻名项目如String,picoContainer等.

在EJB3.0中,可以通过在字段和设置办法上加上注释注入依靠,我想在很快会有新的项目,大概在本来的项目的底子上,一些IOC容器会采取注释的方法注入依靠,JDK5.0加入的注释的确是一个很强盛的功效,相对而言,在.net中的属性却没有施展那么大的代价.这就是开源的威力,不计其数的在开源java程序员不断涌现出新的设法新的功效.

看下面的例子:我们知道,JBOSS中已经默许配置了一个数据源,它的JNDI名称是"java:/DefaultDS".下面这个例子声明了一个数据源,通过注释,便可以将JBOSS的这个默许的数据源赋值给它.

@Resource(jndiName="java:/DefaultDS")
public DataSource customerDB;
Resource注释的声明
@Target({TYPE, METHOD, FIELD, PARAMETER}) @Retention(RUNTIME)
public @interface Resource {
String name() default "";
String resourceType() default "";
AuthenticationType authenticationType() default CONTAINER;
boolean shareable() default true;
String jndiName() default "";
}
public enum Authentication Type {
CONTAINER,
APPLICATION
}
@Target(TYPE) @Retention(RUNTIME)
public @interface Resources {
Resource[] value();
}

Resource的name指向一个在环境属性中命名的资源,AuthenticationType用来指定是容器还是EJB组件来举行身份考证,sharebale指定能否同享,jndiName用来指定JDNI中的名称.resourceType()用来指定资源的范例.

假如name和resourceType都指向被注释的程序成员,AuthenticationType和resourceType都是缺省的,则可以利用Inject注释:

@Inject(jndiName="java:/DefaultDS")
public DataSource customerDB;

关于单例的成员,你可以更简化:

@Inject javax.ejb.SessionContext ctx;
@Inject javax.ejb.TimerService timer;
@Inject javax.ejb.UserTransaction ut;
@Inject javax.ejb.EntityManager manager;

Resources注释可以注入多个资源.

在Eclipse中导入本文供应的例子DI.

这个例子从数据库中读取JMS_USER表,并显示表中的内容.这个例子利用依靠注入的方法得到JBOSS默许的数据源.

这个例子主要有5个文件:

JmsUsers.java:业务接口.

JmsUsersBean.java:业务实现类.将来我们开辟的EJB也都是这样命名(在接口名上加上Bean).

Client.java:测试EJB的客户端类.

jndi.properties:jndi属性文件,供应拜候jdni的基本配置属性.

Build.xml:ant 配置文件,用以编译、公布、测试、排除EJB.

下面针对每个文件的内容做一个介绍.

JmsUsers.java
package com.kuaff.ejb3.di;
import java.util.List;
import javax.ejb.Remote;
import javax.sql.*;
@Remote
public interface JmsUsers
{
public List<String> getUsers();
}


  以上是“EJB 3.0开辟指南之依靠注入[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • EJB3.0学习之运行环境配置
  • 发扬EJB、Spring思惟将组件化举行到底
  • JBoss下的EJB3开辟无情况会话Bean
  • EJBCA 3.0开源CA系统软件初探
  • <b>实战角度比较EJB2和EJB3的异同</b>
  • java ee5平台java长期化开辟(ejb3和jsf)
  • Grails+EJB Domain Models
  • 把WebLogic EJB程序迁移到JBoss上
  • EJB 3.0开辟指南之实体Bean的承当
  • EJB 3.0开辟指南之实体Bean
  • EJB 3.0开辟指南之多对多和一对一
  • EJB 3.0开辟指南之多表映射
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .