美文网首页
01-Spring起步

01-Spring起步

作者: 干净_79db | 来源:发表于2019-02-26 20:23 被阅读0次

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

    1.1 什么是后端开发?

    后端开发

    1.2 Java后端技术图谱?

    二、JavaEE概念

    Java EE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。

    Java EE的核心是EJB3.0, 其提供了更兼便捷的企业级的应用框架。


    1.JAVAEE规范

    首先着重表明JAVAEE是一套规范,说得再实际一些就是一套JAVA接口。规范给出来后就需要有人去实现它,但是谁去实现、如何实现我们不用关心,只要是按规范实现的,对于应用程序开发者使用起来都是一样的。

    JAVAEE是一整套大的规范,里面包含很多小的规范,常见的有EJB、Servlet、JSP、JDBC等。

    在JAVAEE最初的设计初心中,是希望人们用EJB实现业务核心逻辑,而用Servlet和JSP实现应用程序的web表现和界面相关部分。

    1.1、EJB 与 Restful

    EJB是啥,通俗地说就是”把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了”。

    ——这就需要在一台机器上的运行的类可以直接调用另一台机器上运行的类(注意此处的调用不是如今盛行的Restful接口调用,而是像调用本地代码一样调用另一台机器上的代码)。

    EJB 是以RMI 技术(Remote Method Invocation,远程方法调用)为基础实现分布式计算。如果说Restful调用是面向资源的,那么EJB不仅面向资源,还面向获取资源的过程。

    1.2、JAVAWEB开发与JAVAEE开发

    可以说javaee开发包含了javaweb开发:

    javaweb开发:基于Java的一般WEB开发,包括了JSP/SERVLET 需要WEB服务器的支持,比如TOMCAT等.(因此只有一个服务器即可。)

    j2ee开发:然而基于J2EE企业级的开发,他需要的是不只是WEB容器,还需要一个应用服务器,比如TOMCAT/RESIN是WEN容器,JBOSS等是作为应用服务器支持EJB.(需要web服务器和应用服务器)

    只不过现在EJB越来越淡出人们视野,所以把javaweb与javaee概念齐平了。

    现在所谓的纯javaweb项目也就是把原本要写在EJB中的逻辑写到web层去了。丢弃了EJB,然后把web层再进行分层,比如controller层、service层和dao层,就勉强把如今的service层当作EJB吧。

    2.SSH三大框架

    SSH指的是Spring、Structs和Hibernate,是javaweb开发中常用的三个东西,人称“三大框架”。把这三个框架放在一起说的原因是因为他们三个解决了javaweb开发中最重要的三个问题。

    Struts:

    JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件,也就是MVC模式。

    Hibernate:

    对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

    Spring:

    两个重要特性:AOP 和 IOC。使用 AOP 后,公共服务 (比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象,而不再需要自己手动在一个对象中去new另一个依赖的对象,从而减少代码间的耦合和复杂度。

    从上可以看出,Struts和Hibernate是对Servlet、JSP和JDBC实现的更高一个层次的整理和封装,更加方便地让人去使用,以及有助于写出整洁可读性高的代码。而Spring的重点则是一种设计思想。

    3.Spring

    如今的Spring可不仅仅只是AOP和IOC,它更是一个完整的一站式解决方案,并成为了当下现实意义上不言自明的javaee规范

    ---------------------

    作者:WooTer

    来源:CSDN

    原文:https://blog.csdn.net/wutao1155/article/details/67640771

    三、Spring框架特点及构成

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。


    特点:

    1.方便解耦,简化开发通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

    2.AOP编程的支持通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

    3.声明事物的支持 在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

    4.方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。

    5.方便集成各种优秀框架Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。

    6.降低Java EE API的使用难度Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

    7.Java 源码是经典学习范例Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。 

    构成:

    构成图

    1.核心容器

    这是Spring框架最基础的部分,它提供了依赖注入 (DependencyInjection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核 心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。 

    2.应用上下文(Context)模块

    核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。另外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。

    3.Spring的AOP模块

    Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模 块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性,Spring的AOP支持基于AOP联盟定义的API。 AOP联盟是一个开源项目,它的目标是通过定义一组共同的接口和组件来促进AOP的使用以及不同的AOP实现之间的互用性。通过访问他们的站点,你可以找 到关于AOP联盟的更多内容。Spring的AOP模块也将元数据编程引入了Spring。使用Spring的元数据支持,你可以为你的源代码增加注释,指示Spring在何处以及如何应用切面函数。

    4.JDBC抽象和DAO模块

    使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此你可以保持你的数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。这个模块还在几种数据库服务器给出的错误消息之上建立了一个有意义的异常层。使你不用再试图破译神秘的私有的SQL错误消息!另外,这个模块还使用了Spring的AOP模块为Spring应用中的对象提供了事务管理服务。

    5.对象/关系映射集成模块

    对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的 人,Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括 Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一个也包括JDBC。

    6.Spring的Web模块

    Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。例如:实现文件上传的multipart请求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。

    7.Spring的MVC框架

    Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。它也允许你声明性地将请求参数绑定到你的业务对象中,此外,Spring的MVC框架还可以利用Spring的任何其它服务,例如国际化信息与验证。

    8.Spring框架Web页面乱码问题

    在做java Web 项目时,乱码问题时常都会出现,解决方法也不尽相同,有简单也有复杂的;如果加入了Spring框架之后就不一样了,可以采用Spring框架自带的过滤 器CharacterEncodingFilter,这样可以大大减轻了我们的工作量,即简单方便又容易理解,配置方式如下:在web.xml文件中 filter的位置加上如下内容:

    <filter><filter-name>encodingFilter</ filter-name ><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*</url-pattern></filter-mapping>

    四、Spring的起步练习步骤

    1.下载maven压缩包

    2.在电脑磁盘根目录下创建文件夹 maven_jar

    3.配置maven环境(如图所示)

    File-Other Settings-Settings for New Projects 路径更改

    4.检查JDK版本是否一致

    5.创建项目并导入maven

    JDK版本需在8.0以上 Add Framework Support 勾选Maven 注意点刷新按钮

    6.编辑pop.xml,指定阿里云镜

    7.创建HelloWorld类

    8.在beans中添加HelloWorld路径并传值

    9.创建HelloWorldApp类

    10.运行结果

    相关文章

      网友评论

          本文标题:01-Spring起步

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