SpringCloud简单例子

朴灿烈づ我的快乐病毒、 2023-10-11 22:57 95阅读 0赞

Windows10下使用SpringCloud构建微服务架构

1. SpringCloud简介

SpringCloud是一个基于Spring Boot的分布式系统开发工具集,可以快速构建出适用于云环境的应用程序。它提供了众多的组件和子项目,包括服务发现、配置管理、断路器、网关等等。

Spring Cloud为开发者提供了一整套完整的分布式解决方案,从而可以更加敏捷地开发和部署分布式应用程序。

2. Gateway和Nacos模块

Gateway是SpringCloud中的网关服务,主要作用是在微服务架构中扮演着API网关的角色,负责请求的转发、路由、过滤、降级等操作。

Nacos是一种新一代的动态服务发现、配置管理平台,支持多种协议(例如DNS、HTTP等)和多种数据类型(例如JSON、YAML等)。它可以让服务注册、发现和配置都变得非常简单。

3. 完整配置和代码

3.1 环境搭建

  • JDK 1.8以上版本
  • SpringBoot 2.3.4.RELEASE版本
  • SpringCloud Hoxton.SR8版本
  • MySQL 5.7版本
  • IDE:推荐使用IntelliJ IDEA

3.2 创建SpringCloud项目

在IDE中创建一个SpringBoot项目,然后将以下依赖添加到pom.xml文件中:

  1. <!-- SpringCloud Gateway -->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-gateway</artifactId>
  5. </dependency>
  6. <!-- SpringCloud Nacos -->
  7. <dependency>
  8. <groupId>com.alibaba.cloud</groupId>
  9. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  10. </dependency>
  11. <!-- MySQL 数据库驱动 -->
  12. <dependency>
  13. <groupId>mysql</groupId>
  14. <artifactId>mysql-connector-java</artifactId>
  15. </dependency>
  16. <!-- MyBatisPlus框架 -->
  17. <dependency>
  18. <groupId>com.baomidou</groupId>
  19. <artifactId>mybatis-plus-boot-starter</artifactId>
  20. <version>3.4.2</version>
  21. </dependency>

3.3 配置文件

application.properties中添加以下配置:

  1. server.port=9000 # 端口号
  2. spring.application.name=gateway-service # 应用名
  3. # nacos 注册中心配置
  4. spring.cloud.nacos.discovery.server-addr=localhost:8848
  5. spring.cloud.nacos.discovery.namespace=
  6. # gateway 路由配置
  7. spring.cloud.gateway.routes[0].id=service-provider
  8. spring.cloud.gateway.routes[0].uri=http://localhost:8081
  9. spring.cloud.gateway.routes[0].predicates[0]=Path=/provider/**
  10. # MySQL数据源配置
  11. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  12. spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
  13. spring.datasource.username=root
  14. spring.datasource.password=root
  15. # MyBatisPlus配置
  16. mybatis-plus.mapper-locations=classpath:mapper/*.xml
  17. mybatis-plus.configuration.map-underscore-to-camel-case=true

3.4 Java代码

3.4.1 实体类
  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. public class User {
  5. private Integer id;
  6. private String username;
  7. private String password;
  8. }
3.4.2 DAO层
  1. @Mapper
  2. public interface UserDao extends BaseMapper<User> {
  3. }
3.4.3 服务层
  1. @Service
  2. public class UserServiceImpl implements UserService {
  3. @Autowired
  4. private UserDao userDao;
  5. public void addUser(User user) {
  6. userDao.insert(user);
  7. }
  8. public User getUserById(Integer id) {
  9. return userDao.selectById(id);
  10. }
  11. }
3.4.4 控制层
  1. @RestController
  2. @RequestMapping("/user")
  3. public class UserController {
  4. @Autowired
  5. private UserService userService;
  6. @PostMapping("/")
  7. public String addUser(@RequestBody User user) {
  8. userService.addUser(user);
  9. return "添加成功";
  10. }
  11. @GetMapping("/{id}")
  12. public User getUserById(@PathVariable Integer id) {
  13. return userService.getUserById(id);
  14. }
  15. }

3.5 注意事项

  • 在使用Nacos作为注册中心时,需要在服务器上安装Nacos Server。
  • Gateway中的路由配置是按照顺序匹配的,如果有多个路由符合请求URI,则会选择第一个匹配的路由。
  • 配置文件中的spring.datasource.url根据自己的实际情况进行修改。

总结

以上就是一个简单的SpringCloud微服务架构的示例,利用了Gateway、Nacos和MyBatisPlus等组件,可以快速构建分布式系统。此外,我们还额外细化了包括控制层、服务层、DAO层和实体类等内容,以便展示每个层级的详细代码实现。

发表评论

表情:
评论列表 (有 0 条评论,95人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring简单例子

    1.引入包 强烈建议,学习使用下maven及类似依赖包管理工具,如果你以后学Java,基本上会用到的吧 maven:在pom添加依赖: <dependenc