EJB 企业级应用的架构(1)





EJB(Enterprise JavaBean企业级的JavaBean)






企业级应用的架构






Host/Terminal(主机/终端,终端不具备处理能力,数据由主机处理)


C/S(Client/Server客户端/服务器端)


Multi-layered(多层架构)






EJB的功能


1,远程调用 RMI


2,负载均衡,将访问均衡到各个服务器中


3,透明的故障修复


4,集群(多台相同的系统服务器,有代理服务器均衡到后台的服务器)


5,后台集成


6,事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)


7,动态的重部署(在不停止原系统的情况下,部署新的系统)


8,系统管理


9,多线程处理


10,面向消息的中间件(异步的调用编程)


11,管理对象的生命周期


12,资源池


13,安全


14,缓存






EJB的应用(主要用于处理商业逻辑),EJB是一个标准,是开发和部署服务器端的组建的标准。


SOA(面向服务的架构)和EJB的关系


服务,一组组件所提供的功能。


SOAP(简单对象访问协议)


WSDL(web服务描述语言)(Web Services)






写一个EJB的步骤


1,配置EJB的运行环境


2,写商业接口


3,写Bean类,实现商业接口(Bean类不能同时实现远程接口和本地接口)


4,编译文件


5,提供部属文件,EJB3.0中使用了注释不用写标准部署描述(ejb-jar.xml),系统调优用的厂商部署描述是需要写的。


6,打jar包,部署到服务器中






EJB3.0使用了JAVA SE 5.0 中的注释新特性,只要在方法上写EJB规范的注释,就可以不用来写标准的部署表述,ejb-jar.xml这个要放到jar文件的mate-inf文件夹里。


<?xml version="1.0" encoding="UTF-8"?>


<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metadata-complete="true" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">


 <enterprise-beans>


  <session>


    <display-name>HelloBean</display-name>


    <ejb-name>HelloBean</ejb-name>


    <business-remote>test.HelloRemote</business-remote>


    <ejb-class>test.HelloBean</ejb-class>


    <session-type>Stateless</session-type>


    <transaction-type>Container</transaction-type>


    <security-identity>


        <use-caller-identity/>


    </security-identity>


  </session>


 </enterprise-beans>


</ejb-jar>






写EJB客户端的步骤


1,运行客户端前要加上在SUN的服务器文件夹中的lib下的javaee.jar和appserv-rt.jar


2,配置系统的JNDI的环境


3,写测试类,注意在测试类中也要有商业接口






在厂商的部署描述中可以配置EJB的实例池,可以一次创建多个EJB的实例。


EJB的类型


1,SessionBean(Statless/Statfull)


    无状态的SessionBean是不会保存的信息的和状态,无状态的SessionBean是可以重用的,而不是被立刻销毁


    有状态的SessionBean只为一个用户来服务。


2,MDB(Message Driver Bean)消息驱动Bean,可以进行异步的编程


3,Entity Bean 访问数据库,已经被JPA(JAVA持久化API)替代。


4,JPA基于ORM方式来实现对数据库的访问






无状态SessionBean






商业接口


@Remote


public interface HelloRemote {


    public String hello();


}






Bean类,Bean类即可以实现商业接口,也可以不实现,但是其中的方法签名要和接口中相同,不过最好还是实现商业接口避免书写错误


@Stateless


@Remote(test.HelloRemote.class)


public class HelloBean implements HelloRemote {


    public String hello() {


        return "Hello World";


    }


}






注意:EJB一定要先部署到服务器,EJB需要部署环境才能运行






EJB客户端


public class Cilent {


    public static void main(String[] args) throws NamingException {






        System.setProperty("jndi.factory","com.sun.jndi.cosnaming.CNCtxFactory");


        System.setProperty("jndi.provider.url","corbaloc::localhost:3007/NameSpace");


        Context ctx=new InitialContext();


        HelloRemote hello=(HelloRemote)ctx.lookup("test.HelloRemote");


        System.out.println(hello.hello());


        System.out.println(hello.helloword("lichen"));


    }


    


}






注意:在写客户端时,要引入javaee.jar和appser-rt.jar还要引入已经编译好的EJB的jar文件。
java cvf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值