什么是Spring-boot
将一个独立的系统拆分成多个小型服务,服务之间通信基于HTTP的restful api进行通信写作。
Spring-Cloud的优缺点
优点:
服务组件化:各服务可以快速升级。
可以按业务组织团队:
去中心化处理:各个服务,尽量解耦
使用Http的RestFul请求模式
缺点:
运维的新挑战:进程数量大大增加
接口的一致性:修改其中一个接口时,与其相关联的服务都要修改调用的接口
分布式的复杂性:服务更多,所以分布式会更复杂,比如网络延迟,分布式事务等等
Spring-boot
spring-boot的定义:通过大量自动化的配置方式来简化spring原有样板化的配置,使得开发者可以快速构建应用。
创建第一个最简单的spring-boot项目
例子采用Spring-boot 2.0.3 和Spring-cloud Finchley.RELEASE版本
先将大框架搭起来
首先创建父模块,父模块的pom文件为
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
创建一个子模块student-simple
子模块的pom文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
配置文件application.yml
spring:
application:
name: study-simple #项目名
server:
host: localhost #项目主机名
port: 8080 #项目端口号
入口文件:SpringApplication.java
@SpringBootApplication
public class SimpleApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleApplication.class,args);
}
}
SimpleController
@RestController
@RequestMapping("Simple")
public class SimpleController {
@GetMapping("getName")
public String getName(){
return "张三";
}
}
运行SimpleApplication.main(),运行成功会出现这样的信息:
信息告知我们,启动的端口号为8080,访问地址为“”,所以我们不需要项目名直接localhost:8080即可访问项目
启动成功后通过界面访问
到这里,spring-boot + spring-cloud的项目就搭起来了
接下来的博文会针对Spring-cloud的各种功能来扩展这个项目。