万恶之源
工作上一直用到spring cloud微服务框架,网上也看过一些博主的搭建过程,感叹自己眼高手低,想自己动手搭建一套属于自己的微服务框架,虽low但成就感满满。
spring cloud介绍
spring cloud的优点就是将单体应用细化成多个微服务,简化单体应用代码复杂度、维护成本等。微服务是一种架构风格,实现有很多,spring cloud就是其中一种。更多的优点可以百度一下~
spring cloud微服务项目搭建
最后的效果
本篇主要是实现使用IDEA从0到1搭建spring cloud微服务框架目录,最终实现的结果如下。
创建git仓库
克隆仓库
IDEA打开项目
远程仓库创建的项目不是maven项目,IDEA无法识别,可以首先在根项目下创建一个pom文件,并将当前根目录变更为maven模块。
具体操作:
(一)新加pom.xml
(二)选中项目,左上角点击File–>Project Structrue—>Modules—>import Module–>选择当前跟项目—>import Module from external module–>选择maven—>apply即可看到idea识别到该项目是一个maven项目了
添加父项目依赖
中所周知,spring cloud依赖于spring boot,需要在根项目添加spring boot starter的父版本信息,本教程使用2.7.7的spring boot starter parent版本和2021.0.3spring cloud版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.7</version>
<relativePath/>
</parent>
添加依赖管理
根项目的maven package类型是pom,主要用于工程管理,因此需要添加所有的依赖管理,由于是开篇,只添加spring cloud depencies即可
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
创建子项目
待创建的子项目才是我们后续需要研发的服务,现在创建一个blog-service用于处理与博客有关的请求。具体的步骤为:
选中根项目,右键新建一个module—>选择maven项目—>选择父项目是我们的根项目即可
为子项目引入相关依赖
新建的blog-service
用于处理博客相关请求,是一个web
项目,因此需要引入spring-boot-starter-web
和spring-boot-starter
两个依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
创建项目主启动类
添加完依赖后,编写项目主启动类
package lucky.ml.blog;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BlogServerMainCls {
public static void main(String[] args) {
SpringApplication.run(BlogServerMainCls.class, args);
}
}
创建配置文件
server:
port: 8090
spring:
application:
name: blog-service
创建BlogController
创建BlogController用于处理blog请求,这里先写一个hello GET请求
package lucky.ml.blog.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/blogController")
public class BlogController {
@GetMapping("/hello/{name}")
public String sayHello(@PathVariable String name) {
return "hello "+name;
}
}
启动服务
浏览器输入:http://127.0.0.1:8090/blogController/hello/World!
如此,最基本的微服务项目目录搭建成功,下一篇介绍集成consul服务注册中心。