随笔 - 312, 文章 - 14, 评论 - 1393, 引用 - 0
数据加载中……

JBoss

eclipse + JBoss 5 + EJB3开发指南(15):拦截器方法和拦截器类
     摘要: EJB3可以通过拦截器对Bean方法进行拦截和覆盖。这有些象AOP中的around。通过AOP的around方法,可以修改被拦截方法的返回值、参数值,甚至可以取消被拦截方法的执行。EJB3的拦截器可以用在无状态Session Bean、有状态Session Bean和消息驱动Bean(MDB)的方法中。实现拦截器的最简单的方法是使用拦截器方法。也就是说,只要在当前的Bean中使用 @AroundInvoke对某个方法进行注释(关于拦截器的类都在javax.interceptor包中),那么这个方法就会变成拦截器方法,该拦截器方法会拦截当前Bean中的所有方法。  阅读全文

posted @ 2009-06-14 11:00 银河使者 阅读(1919) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean
     摘要: 在前面的文章中给出的SessionBean的例子都是同步调用SessionBean方法的,也就是说,只有当方法中的代码都执行完,才能返回到客户端。但在某些情况下,由于SessionBean方法的执行时间比较长,这就需要异步地调用该方法,否则客户端就需要等待比较长的时间。要实现异步调用,就需要使用本要讲的消息驱动Bean。消息驱动Bean的基本原理是客户端向消息服务器发送一条消息后,消息服务器会将该消息保存在消息队列中。在这时消息服务器中的某个消费者(读取并处理消息的对象)会读取该消息,并进行处理。发送消息的客户端被称为消息生产者。  阅读全文

posted @ 2009-06-08 23:40 银河使者 阅读(2461) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(13):在Servlet中访问应用程序管制EntityManager对象
     摘要: 在前面的文章中使用的都是容器管制的EntityManager对象。这类EntityManager对象是由EJB容器创建的,在这种情况下,EntityManager对象的生命周期完全由EJB容器来管理。在SessionBean中可以使用如下的代码来通知EJB容器创建 EntityManager对象:
@PersistenceContext(unitName="myentity")
protected EntityManager em;
上面的代码需要放在任意一个SessionBean的类中,EJB容器会自动创建EntityManager对象。但如果要在Servlet中直接访问 EntityManager对象,需要使用EntityManagerFactory接口的createEntityManager方法来创建 EntityManager对象,在使用完EntityManagerFactory和EntityManager对象后,可以使用相应的close方方关闭这两个对象。  阅读全文

posted @ 2009-06-06 14:07 银河使者 阅读(2169) | 评论 (2)  编辑

eclipse + JBoss 5 + EJB3开发指南(12):使用命名查询执行JPQL
     摘要: 在EJB3中可以使用EntityManager对象的createQuery方法来执行JPQL(类似于Hibernate中的HQL),这非常简单。但使用createQuery方法处理JPQL时,在每次执行JPQL的过程中系统都需要对JPQL进行分析,这在一定程度上降低了系统运行时的性能。为此,EJB3提供了命名查询的概念。命名查询有些类型于数据库中的存储过程,在提交的过程中就已经被编译处理了。因此,在执行效率上要高一些。  阅读全文

posted @ 2009-06-05 10:12 银河使者 阅读(3020) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(11):实体Bean的连接策略(JOINED Strategy)
     摘要: 本文介绍了如何使用连接策略(JOINED Strategy)对物理表进行划分。子表与父表共享主键。  阅读全文

posted @ 2009-06-04 15:31 银河使者 阅读(2065) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(10):通过继承实体Bean,将单个表映射成多个表(单表策略,SINGLE_TABLE)
     摘要: 如果以前使用过EJB1.x或EJB2.x的实体Bean,会发现无法通过继承实体Bean将单个表分成多表。而在EJB3中,我们可以很容易地使用@Inheritance和@DiscriminatorColumn注释来实现这个功能。  阅读全文

posted @ 2009-06-03 16:22 银河使者 阅读(1795) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(9):实现Entity Bean的多对多(many-to-many)映射
     摘要: 本文介绍了如何使用@ManyToMany注释实现多对多的映射关系。在EJB3中多对多的映射关系需要使用一个连接表来描述。  阅读全文

posted @ 2009-06-03 16:15 银河使者 阅读(1773) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(8):实现Entity Bean的一对多(one-to-many)映射
     摘要: 本文介绍了如使用@OneToMany注释来实现一对多的映射,以及使用@JoinTable注释指定连接表来实现一对多的单向映射。  阅读全文

posted @ 2009-06-03 15:27 银河使者 阅读(2154) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(7):实现Entity Bean的一对一(one-to-one)映射
     摘要: 一对一映射是很常用的。在一般情况下,一个主表通过外键和从表形成一对一的关系。在EJB3中使用@OneToOne注释来映射。一对一关系除了使用外键进行关联外,也可以采用共享主键的方式连接两个表。  阅读全文

posted @ 2009-06-03 10:51 银河使者 阅读(2125) | 评论 (1)  编辑

eclipse + JBoss 5 + EJB3开发指南(6):编写第一个实体Bean程序
     摘要: EJB3容器通过EntityManager对象管理实体Bean,该类最主要的功能就是在记录和JavaBean之间进行互相映射。例如,我们从数据库中查出一条记录,这条记录有field1和field2两个字段,假设有一个JavaBean,也包含了field1和field2属性。那么 EntityManager可以将这条记录中的值映射到JavaBean的field1和field2属性中。也就是说,在数据库中的一条记录就对应于一个JavaBean的对象实例。下面将给出一个简单的例子来演示如何来实现一个应用实体Bean的程序。在这个例子中使用无状态的session bean通过EntityManager对象从数据表中查找一条记录,将该记录映射成实体Bean的对象实例,最后通过session bean的方法返回该记录的某个字段值。  阅读全文

posted @ 2009-05-29 22:02 银河使者 阅读(2579) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean
     摘要: Session Bean除了可以使用注释来发布外,也可以使用相应的配置文件来发布。在这种情况下,就不需要在接口和Session Bean中使用注释了。在JBoss中需要两个文件对Session bean进行配置。这两个文件是ejb-jar.xml和jboss.xml。这两个文件应该META-INF目录中,该目录应该放在jar文件的根目录。ejb-jar.xml文件负责配置session bean,  阅读全文

posted @ 2009-05-27 11:03 银河使者 阅读(3217) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(4):Session Bean中的注释方法
     摘要: 有时需要在Session Bean中初始化和释放一些资源。这些工作应该在SessionBean的@PostConstruct和@PreDestroy方法中进行。其中用 @PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB容器在处理完一些其他工作后调用。用 @PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁之前调用。  阅读全文

posted @ 2009-05-26 17:12 银河使者 阅读(2493) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(3):使用Session Bean的本地接口
     摘要: 有时客户端程序(如JSP、Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss、Weblogic等)中运行。这时就没必要再通过远程(remote)接口访问Session Bean了,因为客户端和session bean都在同一个jvm上,只需要通过本地接口(local)访问即可。就象直接访问本地类一样(当然,不能直接访问EJB类,需要使用jndi和 local接口来获得本地接口对象。当然,也可以通过remote接口来访问ejb,不过这样会有一些性能损失。就象在同一台机器上还通过socket进行访问一样,很多性能都损耗在网络上了。  阅读全文

posted @ 2009-05-14 17:15 银河使者 阅读(2471) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(2):编写有状态的SessionBean
     摘要: 编写有状态的(Stateful)的Session Bean也非常简单,只需要将无状态注释(@Stateless)改成有状态注释(@Stateful)即可。如果使用Stateful Sessionbean,客户端在使用同一个SessionBean对象实例时可以保存状态,也就是说,在多次引用该对象时实际上在服务端是使用的同一个 Sessionbean的对象实例,而无状态sessionbean使用了不同的sessionbean对象实例,因此,是无法保存状态的。  阅读全文

posted @ 2009-05-13 09:51 银河使者 阅读(2841) | 评论 (0)  编辑

eclipse + JBoss 5 + EJB3开发指南(1):编写第一个无状态的SessionBean
     摘要: 本文中将编写一个简单的无状态SessionBean。在发布EJB时,一般需要将EJB程序以jar文件的形式进行发布。这些jar文件将被放在\server\default\deploy目录中。如果在Eclipse中开发EJB程序,需要进行一些配置。首选需要在首选项(Preferences)对话框中设置JBoss的安装目录(如D:\jboss5)。然后在运行配置对话框中添加jboss的运行项。在jboss4.2及以后的版本中,默认情况下jboss只接收来自localhost或127.0.0.1的请求,也就是只接收本地的访问。为了使 jboss接收来自其他地址的请求,在启动jboss时需要使用-b命令行参数进行设置。如下面的启动命令所示:run.bat -b 200.200.200.123,run.bat -b 0.0.0.0  阅读全文

posted @ 2009-05-01 14:39 银河使者 阅读(5273) | 评论 (3)  编辑