Spring Boot vs Spring
- 内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行
- Spring Boot提倡无XML配置文件的理念,使用Spring Boot生成的应用完全不会生成任何配置代码与XML配置文件。
- 提供了多个可选择的「starter」:
- spring-boot-starter-data-redis:
- spring-boot-starter-activemq:
- spring-boot-starter-jdbc:
- spring-boot-starter-web:
- spring-boot-starter-actuator:
Spring Boot 全家桶
@ref: https://gitee.com/yidao620/springboot-bucket
Spring Boot 的新注解
@SpringBootApplication
: 相当于@Configuration + @EnableAutoConfiguration + @ComponentScan
@Configuration
: 指明是IOC容器的配置类, 被标注的类等于在spring的XML配置文件中(applicationContext.xml),装配所有bean事务,提供了一个spring的上下文环境。@EnableAutoConfiguration
: SpringBoot根据应用所声明的依赖来对Spring框架进行自动配置。@ComponentScan
: 组件扫描,可自动发现和装配Bean,默认扫描SpringApplication的run方法里的Booter.class所在的包路径下文件,所以最好将该启动类放到根包路径下。
@RestController
: 作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON或者是XML。使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,效果等同于通过向response.getOutputStream()
写入数据
"classpath:spring/spring-main.xml"}) (locations = { |
Spring Cloud
Spring Cloud 主要组件:
- Spring Cloud Config:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion。
Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
Zuul:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
- Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。
- Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
- Consul:封装了 Consul 操作,consul 是一个服务发现与配置工具,与 Docker 容器可以无缝集成。
Eureka:云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。- Spring Cloud Cluster:提供 Leadership 选举,如:Zookeeper, Redis, Hazelcast, Consul 等常见状态模式的抽象和实现。
- Spring Cloud Zookeeper:操作 Zookeeper 的工具包,用于使用 zookeeper 方式的服务发现和配置管理。
- Spring Cloud Task:提供云端计划任务管理、任务调度。
- Spring Cloud Data Flow:大数据操作工具,作为 Spring XD 的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。
- Spring Cloud Stream:数据流操作开发包,封装了与 Redis,Rabbit、Kafka 等发送接收消息。
@ref: