spring boot有什么用
因为Spring Boot解决的问题(1) Spring Boot使编码变简单(2) Spring Boot使配置变简单(3) Spring Boot使部署变简单(4) Spring Boot使监控变简单(5) Spring的不足
什么是Spring Boot?
Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”这些应用程序。
我们对 Spring 平台和第三方库采取了固执的观点,因此您可以轻松上手。大多数 Spring Boot 应用程序需要最少的 Spring 配置。
特征
创建独立的 Spring 应用程序
直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件)
提供自以为是的“入门”依赖项以简化您的构建配置
尽可能自动配置 Spring 和 3rd 方库
提供生产就绪功能,例如指标、运行状况检查和外部化配置
完全不需要代码生成,也不需要 XML 配置
了解更多,可查询Spring中国教育管理中心相关信息
什么是Spring Boot
[TOC]
这将是一个更专注于引入 Spring Boot 的简短帖子, 我们将讨论 “ 什么是Spring Boot ”? 以及Spring Boot如何帮助构建基于Java的企业应用程序。
作为Java开发人员,我们很可能直接或间接地使用基于 Spring Framework 的应用程序。 Spring 有许多方法可以配置它的行为,它提供了使用基于 XML 的配置或使用 Annotations 的选项, JavaConfig 正在成为新的基于Spring的应用程序的事实上的标准。虽然这些选项看起来非常好,但对于大型企业应用程序涉及数百个模块和复杂的业务规则,这些配置可能变得非常复杂。以下是大型应用程序可以为图片带来的一些复杂问题
所有上述问题或多或少都与确保在开发团队开始处理实际任务之前我们拥有一切有关。现在让我们谈谈我们用来处理任何 基于Spring的应用程序的 另一个用例,假设我们想创建一个基于Web的应用程序,这些是我们大多数人定期做的最常见的步骤
此列表可以根据我们的应用程序类型显着增长
所有上述步骤对我们来说都很明显,但它们给开发团队增加了很多开销,而不是专注于解决实际的业务问题,将消耗初始时间以确保一切都在正确的位置开始工作。将Spring Boot视为可以自动为我们完成这些初始任务的工具,确保团队可以快速开始解决实际业务问题而不是花时间在初始配置和设置。
Spring Boot提供了开箱即用的以下功能
使用Spring Boot,可以轻松管理和处理介绍部分中突出显示的问题。。我们不需要在升级期间手动搜索兼容的jar,Spring Boot将确保我们的应用程序升级到正确的版本(这称为在应用程序上工作,最小化)
让我们看一下 pom.xml Web应用程序的示例,以了解示例Spring Boot配置
只需密切关注 packaging 标签,Spring Boot就可以灵活地运行我们的应用程序, jar 而不是强制我们使用 war 所需的包装类型。
只需仔细检查配置,你就不会找到所有Spring依赖项的任何条目(比如web MVC, core, AOP, ORM, Validation API 等),你可能已经注意到类似的条目 spring-boot-starter-* ,这就是Spring Boot依赖管理过程。我们已添加 spring-boot-starter-web 到我们 pom.xml 和Spring Boot将为 Spring MVC 应用程序提取所有必需的依赖项(不再需要手动配置)。
自动配置是Spring Boot的另一个有趣功能,这就是Spring Boot团队说它有意见的原因。
你是否记得在Servlet容器(Tomcat等)上部署应用程序的过程,每次我们进行这些小的更改并需要将它们部署到应用服务器来测试我们的更改?
Spring Boot为嵌入式Servlet容器提供支持,我们不再需要在app服务器上部署我们的应用程序(这可以使用标准main方法轻松运行),但同时我们可以使用http://在浏览器上访问我们的应用程序主机:端口
Spring-boot-starter-web entry 我们 pom.xml 将为我们的Web应用程序提供嵌入式servlet容器,Apache Tomcat是Spring Boot提供的默认servlet容器,但是,Spring启动提供了使用其他servlet容器的方法(我们必须为此添加所需的启动器)。
springBoot是什么?
Spring Boot可以轻松创建可以“直接运行”的独立的、生产级的基于Spring的应用程序。
我们对Spring平台和第三方保持固执己见的看法,因此您可以轻松上手。大多数Spring Boot应用程序需要最少的时间Spring配置。
其特征如下:
创建独立的Spring应用程序
直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件)
提供自以为是的“入门”依赖项以简化您的构建配置
尽可能自动配置Spring和3rd方库
提供生产就绪功能,例如指标、健康检查和外部化配置
完全无需代码生成,无需XML配置
Spring快速入门指南
第一步:启动一个新的Spring Boot项目
利用启动.spring.io创建一个“网络”项目。在“依赖项”对话框中搜索并添加“web”依赖项,如屏幕截图所示。点击“生成”按钮,下载zip,然后将其解压缩到计算机上的文件夹中。
创建的项目启动.spring.io包含弹簧靴,一个使Spring准备好在您的应用程序中工作的框架,但不需要太多代码或配置。Spring Boot是启动Spring项目的最快和最流行的方式。
第2步:添加您的代码
在IDE中打开项目并在文件夹DemoApplication.java中找到该文件
src/main/java/com/example/demo。现在通过添加下面代码中显示的额外方法和注释来更改文件的内容。您可以复制并粘贴代码或直接输入。
hello()我们添加的方法旨在获取一个名为的字符串参数name,然后将该参数与"Hello"代码中的单词结合起来。这意味着如果您“Amy”在请求中将您的姓名设置为,则响应将为“Hello Amy”.
RestController注释告诉Spring这段代码描述了一个应该在web上可用的端点。 GetMapping(“/hello”)告诉Spring使用我们的方法hello()来回答发送到该
地址的请求。最后, RequestParam告诉Springname在请求中期待一个值,但如果它不存在,它将默认使用单词“World”。
第3步:尝试一下
让我们构建并运行程序。打开命令行(或终端)并导航到您拥有项目文件的文件夹。我们可以通过发出以下命令来构建和运行应用程序:
您应该会看到一些与此非常相似的输出:
这里的最后几行告诉我们Spring已经开始了。Spring Boot的嵌入式Apache Tomcat服务器充当Web服务器,并正在侦听localhostport上的请求8080。打开浏览器,在顶部的地址栏中输入你好.你应该得到一个很好的友好回应,如下所示:
spring boot的优点
①良好的基因
因为SpringBoot是伴随着Spring 4.0而生的,boot是引导的意思,也就是它的作用其实就是在于帮助开发者快速的搭建Spring框架,因此SpringBoot继承了Spring优秀的基因,在Spring中开发更为方便快捷。
②简化编码
,比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-web/artifactId
/dependency
我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,我们看一下其中的一部分,如下:
!-- .....省略其他依赖 --
dependency
groupIdorg.springframework/groupId
artifactIdspring-web/artifactId
version5.0.7.RELEASE/version
scopecompile/scope
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-webmvc/artifactId
version5.0.7.RELEASE/version
scopecompile/scope
/dependency
由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。
③简化配置
Spring 虽然使Java EE轻量级框架,但由于其繁琐的配置,一度被人认为是“配置地狱”。各种XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot更多的是采用 Java Config 的方式,对 Spring 进行配置。举个例子:
我新建一个类,但是我不用 @Service注解,也就是说,它是个普通的类,那么我们如何使它也成为一个 Bean 让 Spring 去管理呢?只需要@Configuration 和@Bean两个注解即可,如下:
public class TestService {
public String sayHello () {
return "Hello Spring Boot!";
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public TestService getTestService() {
return new TestService();
}
}
@Configuration表示该类是个配置类,@Bean表示该方法返回一个 Bean。这样就把TestService作为 Bean 让 Spring 去管理了,在其他地方,我们如果需要使用该 Bean,和原来一样,直接使用@Resource注解注入进来即可使用,非常方便。
@Resource private TestService testService;
另外,部署配置方面,原来 Spring 有多个 xml 和 properties配置,在 Spring Boot 中只需要个 application.yml即可。
④简化部署
在使用 Spring 时,项目部署时需要我们在服务器上部署 tomcat,然后把项目打成 war 包扔到 tomcat里,在使用 Spring Boot 后,我们不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,我们只需要将项目打成 jar 包,使用 java -jar xxx.jar一键式启动项目。
另外,也降低对运行环境的基本要求,环境变量中有JDK即可。
⑤简化监控
我们可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 Spring Cloud 来配合一起使用。