内容简介:Spring Boot是一个真正的游戏改变者,它的受欢迎程度现在不断增加。让我们看看Spring Boot到底是什么?Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种更简单、更快捷的方法来设置、配置和运行简单和基于Web的应用程序。在过去Spring框架中,我们需要为应用配置所有的内容,会有许多配置文件,例如XML或元注释,这是Spring Boot解决的主要问题之一,基本无需XML配置了,都使用@注释。Spring boot巧妙地根据我们选择的依赖配置,可以自动启动我们想要的所
Spring Boot是一个真正的游戏改变者,它的受欢迎程度现在不断增加。让我们看看Spring Boot到底是什么?Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种更简单、更快捷的方法来设置、配置和运行简单和基于Web的应用程序。
在过去Spring框架中,我们需要为应用配置所有的内容,会有许多配置文件,例如XML或元注释,这是Spring Boot解决的主要问题之一,基本无需XML配置了,都使用@注释。
Spring boot巧妙地根据我们选择的依赖配置,可以自动启动我们想要的所有功能,并且只需单击一下即可启动应用程序。此外,它还简化了应用程序的部署过程。
初次使用Spring Boot可能让你感觉似乎发生了什么许多“神奇”的事情。
Spring Boot有下面几个特点:
- 用来实现微服务;
- 独立打包 直接运行
- 自动配置
- 自定义配置
- 模块化
- 内嵌服务器
- Spring cloud的基础
实现微服务
微服务是一种细小粒度的服务,可直接通过端口对外提供服务,Spring Boot提供REST风格API暴露微服务,与客户端交换采取JSON数据格式。
独立打包
Spring的主入口类是以@SpringBootApplication标注.
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
同时这个类也是 Java 的main类,SpringBoot打成Jar包是一种胖jar,兼容标准的Jar包,它的 MANIFEST.MF格式如下:
Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.mycompany.project.MyApplication
也可以打包成可执行的war 包,MANIFEST.MF格式如下:
Main-Class: org.springframework.boot.loader.WarLauncher Start-Class: com.mycompany.project.MyApplication
自动配置
@SpringBootApplication标注有下列公式:
@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan.
@EnableAutoConfiguration智能自动配置会根据添加的maven的pom.xml的依赖项自动配置加载相应的依赖组件,它能智能感知上下文。
只要在pom.xml增加相应依赖就等同于加入相应的组件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
上面配置说明这个应用启动了pring-boot-starter-web的功能,也就是能提供REST端点暴露,让客户端通过/xxx/xx这样形式URL访问内部服务和资源。spring-boot-starter-data-jpa说明启用了JPA功能
Spring专门提供了 https://start.spring.io/ 让你选择一个SpringBoot需要的组件。
自定义配置
Spring Boot除了提供入口函数以外,还提供配置,有两种形式:application.properties和application.yaml,后一种格式在 Docker 和K8s容器编排中比较常用。比如上面启动了JPA,那么可以在applciation.properties中配置JPA的配置:
spring.datasource.url=jdbc:mysql://localhost:3306/temp spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.ddl-auto=update
这就具体指明了JPA实现使用Hibernate,具体数据库时MySQL。
Spring Cloud中各个组件的配置基本都是在这里实现,基本无需写任何代码就可以实现服务网关、服务发现和负载平衡以及断路器功能。
模块化
一般情况下,一个SpringBoot应用 = 一个微服务 = 一个模块 = 一个有边界的上下文,如果有多个模块,我们就开发多个微服务,多个SpringBoot应用,然后使用Springcloud实现它们之间动态访问和监控。 但是有时我们也会希望将多个模块放入一个SpringBoot应用中,这样模块之间调用可以在一个JVM内进行,适合小型系统的部署,随着规模扩大,我们还可将这些模块变成一个个微服务,以SpringBoot应用分布式运行。
其实就是解释@Configuration + @EnableAutoConfiguration + @ComponentScan 三个注释:
内嵌服务器
SpringBoot内嵌默认是tomcat,还有Jetty等其他服务器可以选择,tomcat配置不像过去那样我们可以直接配置,需要通过SpringBoot去配置和调度。过去的模式是:先启动服务器,再启动war应用,服务就启动了;现在的模式是直接启动服务就可以使用了。一个tomcat服务器=一个微服务。
Spring cloud的基础
Spring cloud是实现分布式微服务的组件,它的基础就是一个个Spring Boot微服务,比如服务发现就是一个嵌入了Eureka组件的Spring Boot,而服务网关则是嵌入了Zuul组件的Spring Boot,别问是如何嵌入这些组件的,在上面自动配置有讲述。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithms in Java
Robert Lafore / Sams / 2002-11-06 / USD 64.99
Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use......一起来看看 《Data Structures and Algorithms in Java》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
正则表达式在线测试
正则表达式在线测试