最近有两张图快被我用烂了,但是在这里不得不再用一次。这两张图都来自(http://spring.io)首页!
Spring Boot是build anything。Anything包含很多,其中就包含右侧的Spring Cloud和再右侧的Spring Cloud Data Flow。
Spring Cloud是Coordinate Anything。下面写的:Built directly on Spring Boot's innovative approach to enterprise Java。
我们看一下Spring Cloud文档怎么说的:
Cloud Native is a style of application development that... Many of those features are covered by Spring Boot, on which Spring Cloud builds. 我翻译一下: Cloud Native是一种应用程序开发风格... Cloud Native风格所体现的大部分特性都已经被Spring Boot涵盖了,而且Spring Cloud正是构建于Spring Boot之上的。
Spring Cloud包含API Gateway、Config Server,Service Registry,多个MicroServices...
例如写一个Gateway:
@RestController
@SpringBootApplication
public class GatewaySampleApplication {
@Value("${remote.home}")
private URI home;
@GetMapping("/test")
public ResponseEntity<?> proxy(ProxyExchange<byte[]> proxy) throws Exception {
return proxy.uri(home.toString() + "/image/png").get();
}
}
例如写一个Config Server:
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
public static void main(String[] args) {
SpringApplication.run(ConfigServer.class, args);
}
}
例如写一个Eureka Server(Service Registry):
@SpringBootApplication
@EnableEurekaServer
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
例如要用Hystrix:
@SpringBootApplication
@EnableCircuitBreaker
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
例如要用Feign:
@SpringBootApplication
@EnableFeignClients
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
单个的MicroService就更不用说了:
@SpringBootApplication
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello world";
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
发现了吗?他们都是@SpringBootApplication。