美文网首页
1.Spring起步

1.Spring起步

作者: sherlockwit_孙鸣 | 来源:发表于2019-02-26 19:08 被阅读0次

    一、后端开发的概念和技术栈

    1.1 什么是后端开发?

    • 在现实中,即使前端开发获得了大部分的荣耀,但是世界上存在的大多数代码(可以说是最有用的代码)是最终用户从来不会看到的后端代码。简单来说,后端开发就是开发人员编写的不能直接看到的代码。
    • 后端开发参考链接

    1.2 Java后端技术图谱?

    image

    二、JavaEE概念

    在我们深入J2EE之前,先看一下综述:
    多层式应用(Multitier Application)——多层式应用(或者多层式架构)分成多个逻辑部分,大多在多层服务器上实现。例如,三层应用模型:用户和浏览器,应用服务器,数据库服务器。其中应用服务器和数据库服务器就是分别在不同的服务器上来处理应用的请求。
    多层式服务(Multitier Service)——以三层架构模型的服务为例,应用服务器响应用户的请求。数据库服务器响应应用服务器的查询求情。
    Java Bean——由一些包含私有属性的Java类组成,对外提供get和set方法。从技术上讲,这些类必须保证有一个不含参数的构造器并且实现Serializable接口。

    JavaEE概念:
    • Java EE应用程序模型——这个模型描述了一个实现服务的多层架构。“什么是服务”没有明确的界限。事实上,服务只是一个逻辑上的概念,它的对应实体取决于应用实现的概念。例如,客户端/服务器模型就是一种服务。
    • Java EE 服务——这是一个J2EE中三层架构的应用服务范例。它是由网页层(服务JSP页面)和事务层(管理企业的数据层)组成的。
    • Java EE 组件——“组件”是指独立的软件单元,可以和其他的组件组合来建立一个应用。
      Web组件(Web Component)——web端生成的页面或者对用户请求的返回。代表性的有: Java Servlets, * * JavaServer Faces 和 Java Server Pages.
    • 小程序(Applet)——一个小型的Java应用程序可以作为响应的一部分返回给用户,用户可以在他们的浏览器上运行此程序。这种小型的程序是Javascript的竞争对手。
    • 客户端程序(Application Client)——例如,一个用Java写的桌面应用程序。
    • EJB(Enterprise Java Beans)——见下文。
    • Java EE 客户端——这个概念中包含三个其他的概念:
      网页客户端(Web Client)或小型客户端(thin client)——以前(也不是非常久以前),客户端的请求返回的网页会包含脚本代码,这些代码会在应用服务器上执行了再将运行结果返回给客户端。这就是EE客户端。比如,用户可以查询员工的信息,并且对不同的结果按照他们喜欢的方式排列。现在,大多数开发者都不是在网页中使用脚本了,因为这不是个好习惯。他们更喜欢使用MVC设计原则,即禁止在网页中使用脚本。
      小程序(Applet)
      应用客户端(Application Client)
    • Java EE 服务器通信(Java EE Server Communication)——这是指发生在小型客户端和应用客户端之间在服务器上的通信。具有代表性的是,小型客户端和小程序在Web层通信,但是应用客户端在EJB通信。 你觉得这不够清晰是吗?你觉得这很麻烦是吗?这就对了!这就是REST以及MVC设计原理现在在开发中流行的缘故。
    • EJB (企业级Java Beans,Enterprise Java Beans)——这是一个逻辑概念,与传统的Java Beans无关。它主要试图从多重应用的后端(也就是服务器端)来压缩事务逻辑。其中一个它试图解决的问题是确保数据库中事务处理的完整性。警告:EJB有多个版本,并且3.0版本已经从早期的版本分离出来。
    • JavaBean Component——Java Bean 的同义词,主要用在JSP范例中。
    • Java EE容器(Java EE Container)——这是部署组装Java EE组件的地方(也就是应用程序服务器)。它定义了Web容器(包含servlets和JSP),还定义了EJB容器(包含的企业级Java Bean)以及应用客户端容器(运行独立的应用程序)和在浏览器上运行的小程序容器。
    • 部署描述符(Deployment Descriptor )——这是一个为打包好的应用提供部署信息的XML文件。
    • SOAP(简单对象访问协议,Simple Object Access Protocol)——这是一个通过网络提供的服务传输信息的协议。信息是通过XML构建的,能够通过多个传输交换层,多数情况下是HTTP。SOAP是JSON和REST-like服务的竞争对手。
    • WSLD(网络服务描述语言,Web Service Description Language)——它用XML文件来描述了网络服务(名字,地点,通信模式)。
    • UDDI(通用描述、发现与集成服务,Universal Description, Discovery and Integration)——一种ebXML规范,可以在线发布有关产品和服务的信息。
    • Java Servlet——是用Java写的一个服务器端小程序,可以处理用户的HTTP请求,返回结果。
    • JSP (JavaServer Page)——一种基于HTML文件(就是一个模板)处理之后能够生成静态内容。可以包含脚本代码的片段,以在最终生成的脚本静态文件中生成。
    • JSTL (JSP标准标签库,JavaServer Page Standard Tag Library)——一组可以模仿脚本代码功能的用在* * JSP的标准标签。例如,遍历客户端并显示他们对应的信息。现在,在JSP中,这样的标签已经已经取代了脚本代码。一般用于生成需要填充信息的页面。
    • JSF (Java Server Face)——包含JSF标签(类似于LSTL标签)的JSP页面。此外,JSF允许在页面中定义导航模块(类似于Spring web flow),包括Facelets。
    • Facelets——Facelets是JSF的MVC视图部分。它的主要功能是利用提供的数据(例如客户端列表)将模板转换成HTML文件。它也可以将生成的文件(例如HTML主体)提取出来一部分并到另一个模板中,相当于Sitemesh。
    • The Java API for XML-based Web Services (Java中用来创建基于XML的Web的API,JAX-WS)——对于使用XML通信的Web服务来说至关重要。
    • The Java API for XML Binding (序列化为XML的API,JAXB)——一种可以在JavaBeans和XML文件之间相互转化的方式。
    • JTA (Java事务处理API,Java Transaction API) ——划清数据库中上行和下行的通信界限。
    • JMS(Java信息服务,Java Message Service)——这个API保证服务器和应用在网络上的通信可靠、异步。ActiveMQ实现了JMS。
    • JavaMail API——提供通过应用程序发送邮件方式。
    • JAXP(加工XML文件的API,Java API for XML Processing)——提供了处理XML文件的方式。
    • JAXR(提供XML注册的API,Java API for XML Registries)——一个可以注册包含了元数据的XML的API。
    • JDBC(Java数据库连接,Java Database Connectivity)——这个API可以使应用程序直接通过SQL通信来访问数据库。
    • JCA(J2EE连接器架构,Java EE Connector Architecture)——使应用程序能和信息系统(通常是数据库)通信。
    • JPA(Java持久化API,Java Persistence API)——这是一个在数据库中存储对象的ORM(对象关系表,Object/relational mapping)定义。
    • JNDI(Java命名和目录接口)——一种能存储和检索资源或者通过名字查找信息的方式。
    • JAAS(Java鉴别与授权服务,Java Authentication and Authorization Service)——识别并控制服务权限的一张方式。

    三、Spring框架特点及构成

    • 一、非侵入式编程
      Spring框架的API不会再业务逻辑上出现,即业务逻辑是POJO(Plain Ordinary Java Object)。由于业务逻辑中没有Spring的API,所以业务逻辑可以从Spring框架快速的移植到其他框架。
    • 二、容器
      Spring作为一个容器,可以管理对象的生命周期、对象与对象之间的依赖关系。可以通过配置文件来定义对象,以及设置其他对象的依赖关系。
    • 三、IoC
      控制反转(Inversion of Control),即创建被调用的实例不是由调用者完成,而是由Spring容器完成,并注入调用者。
      当应用IoC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或查找依赖对象,即,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
    • 四、AOP
      面向切面编程,是一种编程思想,是面向对象编程OOP的补充。Spring提供面向对象编程的支持,允许通过分离应用的业务逻辑与系统级服务(日志和事务管理)进行开发。应用对象只实现他们应该做的(完成业务逻辑),并不负责其它的系统级关注点(日志或者事务的支持)。
      可以把日志、安全、事务管理等服务理解成一个“切面”,把很多被业务逻辑反复使用的服务完全剥离出来,以达到复用。然后将“切面”动态的“织入”到业务逻辑中,让其享受此“切面”的服务。

    四、Spring的起步练习步骤

    *注意点:安装路径不能有英文,要用阿里云的镜像下载,不然会很慢。

    相关文章

      网友评论

          本文标题:1.Spring起步

          本文链接:https://www.haomeiwen.com/subject/vqkzyqtx.html