⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ejb2.txt

📁 Java大部分的基础知识,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,还有些面试题
💻 TXT
字号:
一、ejb所用的技术
	rmi:remote method invoke远程方法调用
	jndi:java naming directory interface java的命名目录接口
	连接池:在池中预放n个连接,用时直接取,用完还可以放回去。
二、ejb的分类
	实体bean:持久化到数据库中
		cmp:容器管理的实体bean,不需要写sql
		bmp:bean管理的实体bean,需要写sql
		
		Users就是一个实体对象
	会话bean:主机重启之后信息消失
		无状态:方法间不保留状态。Facade
		有状态:方法间保留状态。
		
		Facade
	消息bean:异步,发送一个消息后将消息放到服务端的
		 消息队队列中,客户端不等待。
三、ejb的实现,各类及接口的作用?
	bean类,在服务端提供真正的服务。
		public class ServerBean implments SessinBean/EntityBean
		{
			//在创建ejb时调用,通过home接口的create方法
			//调用服务端的ejbCreate方法
			public UserPK ejbCreate(UsersData ud)
			{
				
			}
			//有一个create方法必有一个ejbPostCreate方法
			public void ejbPostCreate(UsersData ud)
			{
			
			}
			//ejb钝化前调用,通过它释放相关的资源
			public void ejbPassivate()
			{
				
			}
			//ejb激活前调用
			public void ejbActivate()
			{
				
			}
			//删除ejb
			public void ejbRemove()
			{
				
			}
			//远程方法
			public String sayHello(String name)
			{
				System.out.println("hello "+name);
				return "hello "+name;
			}
		}
	home接口:通过jndi名得到的是home接口,通过home接口的create方法
		 调用服务端的ejbCreate方法,在服务端产生ejb服务实例
		 向客记端返回远程接口,通过远程接口调用服务端的相关
		 方法执行。
		 public interface MyHome extends EJBHome
		 {
		 	public MyRemote create(UsersData data) throws RemoteException;
		 }
	remote接口:通过home接口的create方法调用服务端服务bean的ejbCreate方法
		  向客户端返回一个远程接口就是remote,通过它直接
		  调用服务端服务bean的方法。
		 public interface MyRemote extends EJBObject
		 {
		 	public String sayHello(String name) throws Exception;
		 }
三、实体bean的生命周期
	1、不存在:没有
		通过home接口的create方法调用服务端的ejbCreate方法,从不存在
			进入就绪状态。
	2、入池:有ejb实例但没有加载具体数据
		入池到就绪是激活,在激活前,调用ejbActivate方法加载相关的资源
		就绪到入池是钝化,在钝化前,调用ejbPassivate方法释放相关的资源。
	3、就绪:数据已加载,可以直接调用bean的方法,
		可以修改bean的属性值,可删除bean
四、ejb的调用过程
	1、得到上下文的环境
	2、在上下文环境,通过lookUp方法得到一个home接口 
	3、通过home接口的create方法在服务端产生一个ejb实例,
	   向客户端返回一个远程接口。
	4、客户端通过远程接口调用服务端相关类的方法。
五、ejb2相关配置文件
	ejb-jar.xml:说明两个接口一个类、ejb的类型、ejb的属性
		    ejb的查询sql,形成一个ejb,说明那些方法需要
		    事务。
		    通用配置,所有容器ejb-jar.xml文件的配置是一样的。
	weblogic-cmp-rdbms-jar.xml:说明ejb名与数据库表
			ejb属性与数据库字段的对应关系、
			说明连接池。
			只针对weblogic容器的配置信息。
	weblogic-ejb-jar.xml:给ejb一个jndi名
			只针对weblogic容器的配置信息。

ejb2.0的配置文件
	1、ejb-jar.xml:是通用的配置文件,所有有容器都一样,
		说明两个接口一个类形成一个ejb,说明bean的类型,
		如果是实体说明实体bean的属性、说明bean事务的拦截
		处理方式。
	2、weblogic-rdbms-ejb-jar.xml:说明连接池名、实体bean与表,字段与
		属性的对应关系。
	3、weblogic-ejb-jar.xml:针对当前ejb给定一个jndi名。
ejb2.0的两个接口一个类
	1、服务端的bean类,在服务提供真正的服务。
		public class MyServerBean implements SessionBean/EntityBean
		{
			//通过home接口的create方法调用服务端的ejbCreate
			//方法在服务产生一个ejb实例,向客户端返回一个远程接口
			public void ejbCreate(UsersData data)
			{
			
			}
			//对于实体bean有一个ejbCreate方法必须一个ejbPostCreate方法
			public void ejbPostCreate(UsersData data)
			{
			
			}
			//ejb钝化前系统自动调用,释放相关的资源
			public void ejbPassivate()
			{
			
			}
			//ejb激活前系统自动调用,加载相关的资源
			public void ejbActivate()
			{
				
			}
			//删除一个ejb,通过远程接口的remove
			//方法调用服务端的ejbRemove方法删除ejb
			public void ejbRemove()
			{
			
			}
			public String sayHell(String name)
			{
				System.out.println("hell "+name);
				return "hello "+name;
			}
		}
	2、home接口:通过jndi名得到是home接口,通过home接口的create
		方法在服务端产生一个ejb实例,向客户端返回一个远程接口。
		对于实体bean通过find方法在服务端找到一个ejb实例,向客
		户端返加一个远程接口或远程接口集合(Collection)。
		public interface MyHome extends EJBHome
		{
			public MyRemote create() throws RemoteException;
			public MyRemote findByPrimaryKey(UsersPK pk) throws RemoteException;
			public MyRemote findLogin(String userName,String pwd) throws RemoteException;
			public Collection findAll() throws RemoteException;
		}
	3、远程接口:可以直接调用服务端相关类的方法
		public interface MyRemote extends EJBObject
		{
			public String sayHell(String name) throws RemoteException;
		}
远程调用与本地调用的区别
	远程调用:在ejb1.0中只有远程调用,没有本地调用
	本地调用:ejb2.0才出现本地调用
	相同点:
		都可以调用服务端bean的方法。
		服务端的类是一样的
	不同点:
		远程:可以跨主机、跨系统的调用服务端bean类的方法
		     占用网络资源。
		     远程调用是通过远程接口调用
			     home接口的实现
			     public interface extends EJBHome
			     {
			     }
			     远程接口的实现
			     public interface extends EJBObject
			     {
			     
			     }
		本地:当客户端与服务器在同一台主机时才调用。
		     速度快,但范围很局限。
		     本地调用是通过本地接口调用的	
		     本地接口的实现 
			     home接口的实现
			     public interface extends EJBLocalHome
			     {
			     }
			     远程接口的实现
			     public interface extends EJBLocalObject
			     {
			     
			     }
ejb2的最大价值:
	分布式,一台主机不够用多,多台主机并发处理。
一、ejb2的两个接口一个类
	服务bean:在服务端提供具体的服务,在服务端运行。
	远程home接口:在服务端产生具体的的服务bean
		     向客户端返回一个远程接口,在客户端运行。
	远程接口:可以直接调用服务bean的相关方法,相当于一个遥控器,
		 在客户端运行。
二、ejb2的具体实现
	服务bean:
		public class ServerBean implements SessionBean/EntityBean
		{
			//在实例化时调用
			public String ejbCreate()
			{
			}
			//对于实体bean有一个ejbCreate方法必对应一个ejbPostCreate方法
			public String ejbPostCreate()
			{
			
			}
			//删除一个ejb
			pulbic void ejbRemove()
			{
			}
			//在钝化前调用
			public void ejbPassivate()
			{
			
			}
			//在激活前调用
			public void ejbActivate()
			{
				
			}
			//
			public String sayHello(String name)
			{
				System.out.println("hello "+name);
				return "hello "+name;
			}
		}
	远程home接口:通过jndi名得到是home接口,通过home接口的create方法
		     调用服务端服务bean的ejbCreate方法,在服务端产生一个ejb实例,
		     向客户端返回一个远程接口。
		 public interface ClientHome extends EJBHome
		 {
		 	public CleintRemote create() throws RemoteException;
		 }
	远程接口:可以直接调用服务端服务bean的方法,服务端服务bean
		 公开的方法,远程接口也有对应的方法。
		 public interface ClientRemote extends EJBRemote
		 {
		 	public String sayHello(String name) throws RemoteException;
		 }
三、ejb的调用过程
	客户端通过jndi名得到一个远程home接口,home接口通过create方法调用
	服务端的ejbCreate方法在服务端产生一个服务bean实例,向客户端返回一个
	远程接口,客户端通过远程接口直接调用服务端服务bean的方法。
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -