您好, 访客   登录/注册

基于SpringBoot框架应用开发技术的分析与研究

来源:用户上传      作者:

  摘要:在SpringBoot中Spring项目和Web开发带来了较大的变化和影响,在本研究中通过阐述Spring的项目,分析Spring-Boot技术概念和特点,比较SpringBoot与传统JavaEE开发模式差异,了解SpringBoot对Web开发的重要性。
  关键词:SpringBoot;Java EE开发体系;框架;架构设计
  中图分类号:TP311 文献标识码:A
  文章编号:1009-3044(2019)36-0076-02
  近年来随着该项目出现,研究人员放弃过去的javaEE体系,并且spring项目开源社区扩大,使其应用也更加易于维护,在本研究中分析了SpringBoot以及写Java EE开发体系存在的差异,并且以该项目为核心的开发框架逐渐构成,并且分析了其部署测试管理问题等。
  1 SpringBoot技术分析
  Spring water是近年来新开发的开发框架,在产生该项目时有明确目标,可进一步简化spring应用,并且配置经过优化的配置方式,能够简化出来的应用中的多项配置,除此之外,该项目采用了大量框架,能够对过去项目存在的稳定性问题以及版本过度依赖问题提供解决方案,同时利用该项目能够使众多组建项目更好利用,逐渐改变过去Web应用开发模式。从技术上来看,主要包括以下几个特点:首先在利用该项目进行应用时如同点菜,可进行选配组成,生成初始项目,并能够在内部进行设置服务器和将项目打包为Jar压缩包,进而为Docker专门设计,可以将其作为StarterPOMs配置方式使Maven配置能够显著简化,SpringBoot同时还能够为一些大型项目提供非业务功能特点,包括安全检测,健康检测,无须在项目中配置Xml方式。
  2 SpringBoot与JavaEE开发模式的比较分析
  基于Servlet技术开发的Java web技术相比过去来说发生显著变化,在这一过程中建立了独立整套形成独立开源项目和生态系统,并且相比过去来说采用ejb2.0,保留了学术风格,但是由spring大量轻量级框架共同构成的,直到当前相比JavaEE体系来说有显著差别,我们可发现开源社区是通过利用JAP来改变JavaEE体系的,从其标准上更加倾向在Hibenate,我们可以发现当Oracle收购Java之后,这对JavaEE发展是十分重要的,然而从其开发模式上来说并没有产生显著变化。Spring-Boot项目是以spring作为基础框架,在该过程中主要涉及注入AOP以及面向编程AOP,将Annotation引入到DK5中,使其出现Spring项目之后并配置该方式,过去均采用Xml配置方式的Web service应用,其范围较广,但之后研究人员发现在配置xml文件时发现书写难度大,很难进行后期调试的,因此Spring当时被大多数人所否定,主要是由于配置了较多的Xml文件,而SpringBoot改变不仅能够为人们提供简单的配置文件格式,同时采用Maven,即约定大于配置的这一理念,也被认为是惯例优先原则,从一定程度上是大多数配置信息能够按照过去的预定原则采用缺醒方式,为客户提供个性化的配置方式,在文件中可以使用Properties文件以及Yaml文件,而在其他配置中多使用的是其他配置类型设或Annotation,也可以说SpringBoot可以达到不使用Xml文件配置方式,相比传统项目开发过程中能够为开发效果带来显著变化。SpringBoot的项目开发从变化上是比较大的,此外在打包部署时也发生了较大变化,如下代码所示:
  这一代码涵盖了很多问题,具体包括Main是springboard项目的运行方式,此外对于Javaweb项目来说需要借助外网服务器,无须war形式部署,事实上,从另一程度上应用Tomcat中,最终形成的打包方式包含项目所有文件以及外部服务器内嵌的jar包,这种打包方式能够为Docker部署提供重要的基础,同时还会使SpringBoot项目中Java web开发流程更加便捷,当项目真正使用SpringBoot的项目完成项目开发时,不会再使用传统的开发方式。
  3 SpringBoot开发模板的具体设计
  我们从前台到后台顺序看,在页面上当前已经逐渐放弃使用JSP这一技术,这也是目前技术发展主流趋势,平台模板索引主要包括Freemaker,这种索引方式是包是指语言编程模块引擎,是通过模板生成文本输出的,此外还包括Thymlmeleaf,其与Framarker运用原理是保持一致的,能够对页面图形应用逻辑进行有效分离设计,但由于SpringBoot的项目采用Thymlme-leaf,主要是使其能够与Springmve实现良好融合,其次,该模板引擎相比其他引擎方式来,可实现浏览器直接显示,也是一种常见模板系数,但利用DOM解析时无法对一些大文件Xml进行解析,因此在前端开发时通过借助使用JQuer以及Boot-Strap,在浏览器数据传输时可以通过json的方式进行Restful传输,当数据到达某一服务器之后再次进行框架请求,这一框架可代替原有的Struts2C成为当前的控制层,当前达到持久层之后所涉及技术主要包括JPA,Mybatis,Hibenate等技术,该项目采用JPA融合Spring data的方式,在引擎上选择Hibenate,采用mysql作为数据库采用IntelliJ IDEA作为开发工具。
  4 SpringBoot的部署测试变化分析
  SpringBoot的项目能够使Docker类虚拟容器器的有效部署,2013年国外公司发起Docke,之后在短时间内快速发展起来,当前已经逐渐形成了以Dot:ker为核心的生态系统,之后将Linux 4引入Docker后遵循该协议原则,目前其应用性效果中项目设计技术已经占到了主流市场1/3以上,SpringBoot针对Docker这一技术开展了很多设计和优化,使其能够适应容器技术变化。多种T具丰富也使得Docker应用性逐渐拓展,比如SpringBoot Maven plugin方面来看,Docker能够在正确的时间,地点进行高效运用,这也是Docker应用构建隔离的重点,通过采用Javavm方式能够有效进行硬件环境资源隔离,相比来说能够改变容器的外部环境,使程序移植更加便捷,这对于系统的运行维护来说是十分便利的。可以使用SpringBoot在分布项目中引入Maven,进一步使该插件可用于Docker镜像Maben构建中,在进行Dockerfile镜像层编写后,可将该镜像推送到Docker-file中。从一定程度上来看,Docker是一个类似Gathul原理的镜像托管平台,在项目开发过程中可以使用持续集成的方式,将Jenkins结合GIT Hooks,将代码Push到相应的脚本文件中,又能够将Mavn变异打包到镜像文件,最后部署到相应的Dock-erHub中,将装有Docker的服务器运行到相应的进项容器中,完成文件部署,除此之外由于springBoot项目的模板引擎在通常情况下默认开启缓存,利用这一引擎实现相应文件的修改部署,同时开源部署可通过Jrebel实现,能够便于开发调试效率的提升,并且在测试过程中也相比过去有了较大改变。在Spring-Boot项目中按照过去starter的做法,可以在相应的项目中引入SpringBoot starter tes,无须人为管理,相比其他的测试方式来说更加便捷,其次,可根据SpringBoot项目本身的特点在项目目录中进行测试类的添加,其次在測试类SpringBoot中可以使用新网址来代替旧网址,可以使用两个常用Annotation,确保测试操作的回滚,在具体测试过程中需要按照Junit开展。在控制层测试类中实际上是将Webapplieationcontext注入相应的Mockmvc中,能够通过Springmvcv本身的测试功能,在具体测试中主要涉及项目准备,能够为其提供有效的测试环境,通过Mockmve模块来模拟执行请求,增加验证和处理结果,收到相应的处理结果之后进行Assert的下定义,之后进行响应请求,最后需要卸载整个测试中,所运用的Moc:kmve环境完成整体测试,总之利用SpringBoot的项目以及springmve之间的关系测试,能够使整个测试更加便捷,为后期实现自动化提供基础。
  5 SpringBoot管理、监控
  对于web系统开发来说,通过采用SpringBoot项目能够转变其开发模式,主要用于监控实际生产环境,然而如何对系统各功能项进行实时监控,需要通过各性能指标参数进行有效评估,在系统处于不稳定运行过程中,需要及时找到故障问题,而不是当系统停止功能运行后才进行故障查找,以防业务系统受到较大故障影响,尤其对于大规模互联网中需要引入相应的网管系统,但事实上这种系统在使用过程中监控流程比较粗略,利用Spring可以对所有配置信息进行有效监控,当前该应用中所涉及的线程Bean、环境、健康等相关信息,均可以采用管理端点监控的方式来实现,将所有的数据传递给开发者。当项目部署完成之后可以通过地址访问监控信息,甚至进行自定义端口,对于重要的目标指标进行监控,然而这一页任务市场上任何监控产品是无法实现的,此外对于sprinkle的项目在外部系统中的开发,可采用JMX来提升其功能,SpringBoot项目对于Spring平台是十分重要的,无论在其特殊测试、部署或者功能开发方面都能够显著拓宽web系统的开发应用,随着当前微框架的推广应用,SpringBoot作为底层支持逐渐改变着Web开发模式。
  参考文献:
  [1]张雷,王悦.基于SpringBoot微服务架构下的MVC模型研究[J].安徽电子信息职业技术学院学报,2018(4):1-9.
  [2]吕宇琛.SpringBoof框架在web应用开发中的探讨[J].科技创新导报,2018(8).
  [3]孙宇.基于SpringBoot微框架的建筑项目管理系统[D].哈尔滨:哈尔滨工业大学,2018.
  [4]谭一鸣.基于微服务架构的平台化服务框架的设计与实现[D].北京:北京交通大学,2017.
  【通联编辑:张薇】
  收稿日期:2019-09-25
  作者简介:熊永平,男(布依族),云南罗平人,讲师,工学硕士,研究方向为软件系统架构设计与开发。
转载注明来源:https://www.xzbu.com/8/view-15123452.htm