ejb3.0基础
来源:互联网 发布:网络歌曲很少歌曲 编辑:程序博客网 时间:2024/06/05 15:19
1.EJB的三种bean:
1>会话bean(Session Bean)--负责与客户端交互,是编写业务逻辑的地方。在会话bean中要可以直接通过JDBC操作数据库,但大多数情况通过实体bean完成对数据库操作
a.无状态会话bean(使用较多),它的实例可以供多个用户使用,所以它的性能比有状态bean高,而正因为一个bean实例被多个用户使用,所以前一个用户设置的值可能会被后一个用户所修改,因而它无法正确保存某个用户设置的值,所以它是无状态的
b.有状态会话bean(使用较少),因为它的一个实例只供一个用户使用,所以性能开销比较大,每个用户设置的值 不会被其他的用户所修改,所以可以正确每个用户设置值,因而它是有状态的
2>实体bean(entity bean)---Java持久化规范技术,类似于hibernate中与数据库表映射的bean
3>消息驱动bean(message-driven bean)--专门用于异步处理java消息的组件,具有大量处理并发消息的能力
2.开发无状态会话bean:
1>开发接口:
public interface HelloWorld {public String sayHello(String name);}2>开发无状态bean实现接口
@Stateless//bean类是无状态bean@Remote(HelloWorld.class)//远程接口public class HelloWorldImpl implements HelloWorld {@Overridepublic String sayHello(String name) {return name+" say hello";}}3>开发客户端,此处的客户端不需要与服务端处于同一台计算机上,只需要修改其中连接的服务器IP地址和启动Jboss时绑定相应的IP地址就可以了,这就是EJB的远程调用特性。
public static void main(String[] args) {//JNDI服务的配置信息Properties properties=new Properties();properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");properties.setProperty("java.naming.provider.url", "localhost:1099");try {Context context=new InitialContext(properties);//获取无状态bean的代理HelloWorld helloWorld=(HelloWorld)context.lookup("HelloWorldImpl/remote");System.err.println(helloWorld.sayHello("cash"));} catch (NamingException e) {e.printStackTrace();}}4>Jboss默认生成的JDNI名称:
a.当EJB发布到Jboss时,没有为它指定全局JNDI名称或修改其默认EJB名称,Jboss就会按照默认的命名规则为EJB生成全局JNDI名称,默认规则如下:
本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
(EAR-FILE-BASE-NAME为ear文件的名称,EJB-CLASS-NAME为EJB的非限定类名,不包含包名)
例如:把HelloWorld应用作为EJB模块打包进名为HelloWorld.ear的企业应用文件,它的远程接口的JNDI名称是:HelloWorld/HelloWorldImpl/remote
b.如果把EJB应用打包成后经为*.jar的模块文件,默认的全局JNDI名称是
本地接口:EJB-CLASS-NAME/local
远程接口:EJB-CLASS-NAME/remote
例如上面的代码。
- EJB3.0基础
- ejb3.0基础
- EJB3。0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0
- EJB3.0概览
- EJB3.0概览
- ejb3.0新特性
- Jboss EJB3.0 security
- Jboss Ejb3.0 Interceptor
- EJB3.0介绍
- EJB3.0介绍
- EJB3.0学习感触
- EJB3.0范例
- 基于xulrunner架构下的Observer Mode
- 开始学习了,不能在这样下去了~~
- hdoj 3685 Rotational Painting
- 1114 Piggy-Bank
- 美法官驳回Facebook广告和解协议
- ejb3.0基础
- 学做jQuery中的data()函数
- struts1搭建步骤(健忘,仅仅是提醒自己而已)
- IOS 控件 UITextField textField
- s3c2440的看门狗
- 纠结的Web程序员
- 提高MYSQL百万条数据的查询速度
- web学习—css样式表—css初识
- 关于MySQL中复合索引优化