随着动态语言(Ruby、Groovy、Scala、Node.js等)的流行,Java开发显得越来越笨重,特别是在web开发中,往往要面临繁多的配置及低下的开发效率。
比如我们使用Spring MVC做应用开发,要知道配置哪些类来让Hibernate和Spring一起工作,要知道如何配置view resolver来控制哪个模版进行视图层的展示。经常写了一大堆代码之后发现只是在处理Spring框架本身的配置,根本一行业务逻辑都没有写。开发完成之后,我们还要考虑部署的问题,且不说部署到非常笨重的应用服务器,比如WebSphere, Weblogic或者JBoss,即使部署到Tomcat或者Jetty这种轻量级容器上面,我们要知道如何配置容器,如何修改配置文件等等。而且在多应用部署到同一个Tomcat的时候,经常会出现冲突。就算我们花了很大力气解决了这些问题,程序部署成功之后,我们很难去了解这个程序的运行状态。有可能我们要配置很多第三方工具来去知道这个应用程序运行状态如何,有哪些参数,环境变量是什么。尽管Spring帮我们解决了依赖注入的问题,简化了一些MVC的流程,但是Spring框架本身集成了越来越多东西,导致其越来越难配置,维护成本成直线上升。很多时候,Python, Ruby或者JavaScript程序员敲几个命令安装一些库,然后简单的敲几行代码,引入一些框架比如flask,然后直接一个简单的API就可以跑起来了。Java程序员可能还在研究该使用Maven里面的哪个库,如何在代码里面进行配置。
Spring Boot的出现让这一情况有了很大的改观,它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot 很容易创建一个独立运行(运行jar,内嵌Servlet 容器)、准生产级别的基于Spring框架的项目,使用Spring Boot 你可以不用或者只需要很少的Spring 配置。
【Spring Boot 核心功能】
独立运行的Spring 项目 Spring Boot 可以以jar 包的形式独立运行,运行一个Spring Boot 项目只需通过java –jarxx.jar 来运行。
内嵌Servlet 容器 Spring Boot 可选择内嵌Tomcat、Jetty 或者Undertow ,这样我们无须以war 包形式部署项目。
提供starter 简化Maven 配置
Spring 提供了一系列的starter pom 来简化Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入如下图所示的依赖包。
自动配置Spring
Spring Boot 会根据在类路径中的jar 包、类,为jar 包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean,而Spring Boot 没有提供支持,则可以自定义自动配置。
准生产的应用监控 Spring Boot 提供基于http、ssh、telnet 对运行时的项目进行监控。
无代码生成和xml 配置 Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x 提供的新特性。Spring 4.x 提倡使用Java 配置和注解配置组合,而Spring Boot 不需要任何xml 配置即可实现Spring 的所有配置。
没工作之前简单接触过Spring MVC,确实感觉挺找不着头脑的,对于初学者而言可以讲很不友好,后来工作中接触到Spring Boot,感觉确实如介绍所说”习惯优于配置”,开发起来确实简单很多,所以打算用几篇文章简单介绍一下Spring Boot的使用。我一直很赞成一个学习方法,先学会使用,后期在使用中解惑,去了解一些原理性的东西。希望可以通过接下来的一些文章,给要入门的同学一些指引。博客的所有文章欢迎一切形式的转载,并注明出处。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。