📄 ejb3.txt
字号:
ejb3
1、ant的作用
编译、打印、部署
2、jboss的使用
1、有三种运行方式 mini all default
若是all
run -c all
若是mini
run -c mini
若是default
run
必须配置JBOSS-HOME
2、启动的目录,若是default
%JBOSS_HOME%/bin
3、部署目录:
%JBOSS_HOME%/server/default/deploy
4、客户开发的类包
%JBOSS_HOME%/client
5、连接池的模块
%JBOSS_HOME%/docs/examples/jca
6、如何在jboss中配置连接池
将mssql-ds.xml文件拷入到%JBOSS_HOME%/server/default/deploy修
改用户名、密码、数据库名、驱动
将sqlserver的三个类包拷入到%JBOSS_HOME%/server/default/lib下
3、ejb3所用的技术
rmi:remote method invoke 远程方法调用,客户可以直接调用服务
端一个类的方法。
jndi:通过jndi名可以直接得到一个实例。相当于dns,类的别名。
在jndi.properties文件中说明具体url、工厂类
Properties p=new Properties();
p.load(getStreamResoutce("jndi.properties"));
Context context=new InitialContext(p);
IFacade facade=(IFacade)context.lookUp("Facade/remote");
连接池:在服务端池中预先放置n个连接,用时直接取,不用时还可以放回去。
3、ejb3的分类:
1、会话bean
1、无状态会话bean:方法间不保留中状态,facade
2、有状态的会话bean:方法间保留状态。
2、实体bean:主机重启之后信息还存在
cmp //users
3、消息bean:异步
4、ejb最有价值的功能
1、分布式:一台主机不够用时多台主机并发处理。
有一个负载均衡处理器,根据各主机
的忙碌情况将新的请求发给不同的主机。
2、系统大小确定的方式
1、并发请求客户端的数量。
小型
<300
中型
300,1000
大型
1000以上
2、数据量的大小
<500M微型
500M以内的数据量不算大。
500M-5G之间
小型
5G-1T之间
中型
1T以上:
大型
3、响应速度
3、80%-90%的系统不会用分布式,所以不用ejb
sshi
10%-20%的系统会用到分布式,要用到ejb
ejb3
ejb2
5、实体bean的开发过程
1、加入连接池
2、在src目录下加入META-INF目录,加入persistence.xml文件
说明调用的连接池
3、写数据类
类名前加入@ENTITY说明是一个实体bean
及与基于的对应关系
必须实现serialable接口可以被序列化
说明主键,属性与字段名的对应关系。
4、实体bean的调用方法
persistent:增加
merge:修改
remove:删除
find:根据主键查找
Query query=em.createQuery("from Users where userName=?1 and pwd=?2");
query.setParameter(1,"userName");
query.setParameter(2,"1234");
List<Users> user=query.getResultList();
6、sessionBean的实现过程
1、写一个接口
2、写一个实现类,类名前加入注解说明具体是一个远程的无状态
sessionBean
3、在所有方法之前加入注解说明EntityManager,通过
EnityManager的方法与实体bean交互。
五、ejb所用技术
rmi(remote method invoke):远程方法调用,客户可以直接调用服务端对象一个方法。
jndi(java naming direction interface):通过jndi名可直接得到一个类,相当类的别名(dns)
连接池:在池中预放n个连接,用时直接取,用完了还可以放回去。
九、ejb实体bean的开发
1、导入模板
2、写数据类加入注解必须序列化
3、加入\META-INF\文件夹,加入persistence.xml,说明连接
池信息
十、ejb中的SessionBean的开发
1、写一个接口
2、写一个实现类,在实现类前说明其是一个无状态有sessionBean
远程接口
3、在所有方法前加入一个EntityManger属性
em.persist:增加
em.merge:修改
em.remove:删除
em.find(类说明,主键值):根据主键查
em.createQuery().getResultList:得到一批数据
十二、客户端调用ejb
1、通过一个properties说明服务端的地址及工厂类
2、加载properties文件
3、产生一个会话
Context context=new InitContext(p);
4、通过jndi名得到一个ejb
IFacade facade=(Facade)context.lookUp("Facade/remote");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -