开发环境准备

确保已安装以下工具:

  • JDK 1.8 或更高版本
  • VSCode 最新稳定版
  • VSCode 扩展:Java Extension Pack、Spring Boot Extension Pack

安装完成后,通过命令验证环境:

java -version
code --version

创建Spring Boot父工程

使用Spring Initializr创建父工程:

  1. 在VSCode中按Ctrl+Shift+P,搜索Spring Initializr
  2. 选择Generate a Maven Project,Java语言
  3. 打包方式选择pom,添加依赖:Spring Web, Lombok

生成的pom.xml需包含模块管理:

<modules>
    <module>service-registry</module>
    <module>api-gateway</module>
</modules>

搭建服务注册中心

创建子模块service-registry

  1. 在父工程目录右键新建文件夹
  2. pom.xml添加依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

主启动类添加注解:

@EnableEurekaServer
@SpringBootApplication
public class RegistryApplication {
    public static void main(String[] args) {
        SpringApplication.run(RegistryApplication.class, args);
    }
}

配置文件application.yml

server:
  port: 8761
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

实现API网关

新建模块api-gateway

  1. 添加网关依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

配置路由规则:

spring:
  cloud:
    gateway:
      routes:
        - id: user-service
          uri: lb://USER-SERVICE
          predicates:
            - Path=/api/users/**

创建微服务提供者

新建业务模块user-service

  1. 添加Eureka客户端依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

配置服务注册:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: user-service

服务间通信实现

使用OpenFeign进行声明式调用:

  1. 在调用方添加依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

创建Feign客户端接口:

@FeignClient(name = "order-service")
public interface OrderClient {
    @GetMapping("/orders/user/{userId}")
    List<Order> getOrdersByUser(@PathVariable Long userId);
}

分布式配置管理

搭建Config Server:

  1. 新建模块config-server
  2. 添加依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

配置文件仓库设置:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-repo/config-repo
          search-paths: '{application}'

项目调试与测试

VSCode调试配置:

  1. 创建.vscode/launch.json
  2. 添加Spring Boot调试配置:
{
    "type": "java",
    "request": "launch",
    "mainClass": "com.example.UserApplication",
    "projectName": "user-service"
}

集成测试示例:

@SpringBootTest
@AutoConfigureMockMvc
class UserControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    void getUserById() throws Exception {
        mockMvc.perform(get("/users/1"))
               .andExpect(status().isOk());
    }
}

生产环境建议

容器化部署准备:

  1. 添加Dockerfile:
FROM openjdk:11-jre
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

构建及运行命令:

mvn clean package
docker build -t user-service .
docker run -p 8080:8080 user-service

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐