阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 79 80 81 82 83 84 85 86 87 ··· 139 下一页

2012年2月2日

摘要: 不象在EJB2.X中,需要在部署文件中部署事务。EJB3.0通过注释就为指定的类或者方法提供事务支持。在EJB3.0的预览版规范中,指明使用TransactionAttribute作为注释,TransactionAttribute的声明如下@Target({METHOD, TYPE}) @Retention(RUNTIME)public @interface TransactionAttribute{TransactionAttributeType value() default REQUIRED;}TransactionAttributeType是一个枚举类型:public enum Tra 阅读全文

posted @ 2012-02-02 22:14 阳光VIP 阅读(219) 评论(0) 推荐(0) 编辑

摘要: 和无状态会话Bean一样,一个有状态会话Bean必须有一个业务接口,这个接口由会话Bean来实现,或者也可以由会话Bean来产生。这样,你可以只写一个文件,就可以生成业务逻辑实现类、远程接口、本地接口等。在目前jboss的实现中,必须要有一个独立的业务接口。这个接口不必实现EJBObject或者EJBLocalObject。一个有状态会话Bean必须使用Statelfull注释,以表明它是一个有状态的会话Bean。EJB容器将根据这个注释来判定它的类型。或者实现javax.ejb.SessionBean接口。一个有状态的会话Bean可以实现setSessionContext方法,也可以不实现。 阅读全文

posted @ 2012-02-02 22:14 阳光VIP 阅读(222) 评论(0) 推荐(0) 编辑

摘要: 可以通过访问SessionContext得到它的定时服务。SessionContext可以通过注入的方式得到:private @Inject SessionContext ctx;在EJB2.1的规范中需要实现ejbTimeout方法,当然还有ejbPassivate、ejbRemove等方法。在EJB3.0中,只有你想用它们的时候,你才必须创建它们,否则不必实现。这个例子主要有5个文件,这个例子的Bean是一个无状态会话Bean:NewsTimer.java:业务接口。NewsTimer.java:业务实现类。将来我们开发的EJB也都是这样命名(在接口名上加上Bean)。Client.jav 阅读全文

posted @ 2012-02-02 22:13 阳光VIP 阅读(160) 评论(0) 推荐(0) 编辑

摘要: 消息驱动Bean的业务接口已经被定义,对于使用JMS来说那就是MessageListener接口,这个接口定义了OnMessage方法。实现类必须使用MessageDriven注释。可以实现也可以不实现setMessageDrivenContext和ejbRemove方法。在JBOSS中,通过ConnectionConfig指定消息的队列的JNDI名称。@ConnectionConfig(destinationType = javax.jms.Queue.class, destinationJndiName = "queue/kuaffejb3/sample", durab 阅读全文

posted @ 2012-02-02 22:13 阳光VIP 阅读(116) 评论(0) 推荐(0) 编辑

摘要: 依赖注入(Dependency Injection),又称作控制反转(IOC),本来是一种设计模式,现在被吵得热火朝天,有点过了。比较有名项目如String,picoContainer等。在EJB3.0中,可以通过在字段和设置方法上加上注释注入依赖,我想在很快会有新的项目,或者在原来的项目的基础上,一些IOC容器会采用注释的方式注入依赖,JDK5.0加入的注释的确是一个很强大的功能,相对而言,在.net中的属性却没有发挥那么大的价值。这就是开源的威力,成千上万的在开源java程序员不断涌现出新的想法新的功能。看下面的例子:我们知道,JBOSS中已经默认配置了一个数据源,它的JNDI名称是&qu 阅读全文

posted @ 2012-02-02 22:13 阳光VIP 阅读(158) 评论(0) 推荐(0) 编辑

摘要: 在EJB3.0中开发实体Bean非常简单,你可以象开发一般的java bean一样编程,只需做少量的注释。一个实体bean不需要实现Home接口或者Remote、Local接口。实体Bean通过EntityManager产生、查找、和持久层结合、从持久层收回等操作。JBoss的EJB3.0架构在Hibernate之上。注释:@Entity:如果你要建立一个实体Bean的类,你必须在类上加上这个注释,用来告诉容器这个类是实体Bean。这个Bean的主键由@Id指定。这个注释的声明如下:@Target(TYPE) @Retention(RUNTIME)public @interface Entit 阅读全文

posted @ 2012-02-02 22:12 阳光VIP 阅读(164) 评论(0) 推荐(0) 编辑

摘要: 在上面的章节我们提到,实体bean的属性可以是java基本对象、Date等,事实上,实体Bean的属性也可以是其他的java对象。这些Java对象不能直接从持久化上下文中读取,它依赖于主实体bean。不象关联实体Bean,在EJB3.0中不支持依赖值对象的集合。依赖值对象不支持继承,这将在EJB3.1中在讨论。依赖类需要使用◎DependentObject来注释:@Target({TYPE}) @Retention(RUNTIME)public @interface DependentObject {AccessType access() default PROPERTY;}这个注释可以指定容 阅读全文

posted @ 2012-02-02 22:11 阳光VIP 阅读(150) 评论(0) 推荐(0) 编辑

摘要: 在上面一个例子中,实体Bean的属性对应到数据表中的列,都是采用默认的设置。通过Column,你可以为属性指定数据表中的列名。Column的声明如下:@Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)public @interface Column {String name() default "";boolean primaryKey() default false;boolean unique() default false;boolean nullable() default true;boolean insertab 阅读全文

posted @ 2012-02-02 22:11 阳光VIP 阅读(190) 评论(0) 推荐(0) 编辑

摘要: 在前面的例子中,我们演示了一对多和多对一的例子,在本章将演示多对多和一对一的关系。学生和老师就是多对多的关系。一个学生有多个老师,一个老师教多个学生。学生和档案就是一对一的关系(不知道国外的学生有没有档案?)。为了实现多对多的关系,数据库中需要关联表,用以在两个实体间建立关联。JBoss可以自动生成关联表,你也可以@AssociationTable来指定关联表的信息。如:@ManyToMany(cascade = {CascadeType.CREATE, CascadeType.MERGE}, fetch = FetchType.EAGER, isInverse = true)@Associa 阅读全文

posted @ 2012-02-02 22:10 阳光VIP 阅读(196) 评论(0) 推荐(0) 编辑

摘要: 在前面的例子中,我们每一个实体Bean只映射到数据库中的一张表上。事实上,一个实体Bean可以映射到多张表上。在一些需要字典表的项目上会经常用到,象以前我做过的项目,使用到很多国标规定的数据表。在我们下面这个例子中,性别作为一个字典表存在,学生这个实体将映射到学生信息表、性别表这两个表。从表可以使用@SecondaryTable来注释:@Target({TYPE}) @Retention(RUNTIME)public @interface SecondaryTable {String name();String catalog() default "";String sch 阅读全文

posted @ 2012-02-02 22:10 阳光VIP 阅读(158) 评论(0) 推荐(0) 编辑

上一页 1 ··· 79 80 81 82 83 84 85 86 87 ··· 139 下一页