1.什么是Spring Cloud
Spring Cloud是基于Spring Boot实现的微服务架构开发工具,是一系列框架的有序集合,主要提供了配置中心,服务治理,断路器,消息总线,负载均衡,集群状态监控,全局锁,分布式会话等。
2. Spring Cloud 包含的子项目
2.1 Spring Cloud Netfix 是Spring Cloud的核心组件,主要包含以下功能:
a.Eureka 服务治理:服务注册,注册中心和服务发现 ;
b.Hystrix 容错管理:为服务的延迟和故障提供容错能力饿断路器 ;
c.Ribbon 实现基于客户端的负载均衡;
d.Feign 基于Hystrix和Ribbon的声明式服务调用组件;
e.Zuul 网关组件,提供智能路由,访问过滤功能;
f.Archaius 提供外部化配置;
2.2 Spring Cloud Bus 事件和消息总线,用于传播集群的状态变化或事件,进而触发后续操作;
2.3 Spring Cloud Cluster 提供选主服务;
2.4 Spring Cloud Consul 服务发现及配置管理工具;
2.5 Spring Cloud Sleuth 服务跟踪
2.5 Spring Cloud Stream 提供消息驱动的应用框架,针对MQ消息队列的;
2.6 Spring Cloud Security 基于Spring Boot和Spring安全性OAuth2,实现如单点登录,令牌中继和令牌交换等;
2.7 Spring Cloud Config 分布式配置管理,支持git存储,Client的配置信息刷新等
3.spring boot多环境的支持:
序号 | 文件名字 | 环境 |
---|---|---|
1 | application.properties | 通用配置,不区分具体环境 |
2 | application-dev.properties | 开发环境 |
3 | application-test.properties | 测试环境 |
4 | application-prod.properties | 生产环境 |
可以通过spring.profiles.active来区分不同的环境,主要方法有application.properties文件中的spring.profiles.active=dev值来指定不同环境,或者启动的时候java -jar *.jar --spring.profiles.active=dev指定
4.开发热部署工具:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
5.监控工具:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
6.异步执行
只需要在方法上注解@Async即可,举例:
@Async
public void log(String message) {
System.out.println(message);
}
7.编译打包工具:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<mainClass>com.lance.spring.boot.demo.controller.SpringBootDemoMain</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
8.starter 常用包
a.spring-boot-starter-web: 构建基于Spring MVC的Web项目;
b.spring-boot-starter-data-redis: 使用redis;
c.spring-boot-starter-data-jpa: 使用MySql(依赖Hibernate);
d.spring-boot-starter-data-elasticsearch:使用Elastic Search;
e.spring-boot-starter-aop: 使用Spring的Aop、AspectJ切面;
f.spring-boot-starter-data-mongodb:使用MongoDB数据库;
g.spring-boot-starter-jdbc:使用JDBC;
h.spring-boot-starter-test:使用JUnit、Hamcrest和Mockito作为测试框架。
i.spring-boot-starter:包括 自动配置支持、 logging and YAML.
网友评论