首页 > 其他分享 >Spring Cloud 开发环境搭建

Spring Cloud 开发环境搭建

时间:2024-12-18 15:20:56浏览次数:9  
标签:项目 Spring Eureka Maven org Cloud 搭建

一、环境准备

  1. Java环境

    • Spring Cloud是基于Java开发的框架,所以需要先安装Java开发工具包(JDK)。确保你的系统安装了JDK 8或更高版本。你可以从Oracle官方网站(https://www.oracle.com/java/technologies/javase-downloads.html)或OpenJDK官方网站(https://openjdk.java.net/install/)下载适合你操作系统的JDK版本。
    • 安装完成后,需要配置好Java环境变量。例如,在Windows系统中,需要设置JAVA_HOME变量为JDK的安装路径,并且将%JAVA_HOME%\bin添加到系统的PATH变量中。在Linux或macOS系统中,可以通过修改~/.bash_profile~/.bashrc文件来设置环境变量,添加类似export JAVA_HOME = /path/to/jdkexport PATH = $JAVA_HOME/bin:$PATH的内容。
  2. 构建工具(可选但推荐)

    • Maven:Maven是一个流行的项目管理和构建工具。你可以从Maven官方网站(https://maven.apache.org/download.cgi)下载Maven的二进制压缩包。解压后,在系统环境变量中配置M2_HOME指向Maven的解压目录,并且将%M2_HOME%\bin添加到PATH变量中。
    • Gradle:这也是一种构建工具,可作为Maven的替代方案。从Gradle官方网站(https://gradle.org/releases/)下载适合的版本,配置方式与Maven类似,设置GRADLE_HOME环境变量和将其bin目录添加到PATH中。
  3. 集成开发环境(IDE)(可选但推荐)

    • IntelliJ IDEA:这是一款功能强大的Java开发IDE。可以从JetBrains官方网站(https://www.jetbrains.com/idea/download/)下载社区版或专业版。它对Spring Cloud有很好的支持,安装完成后,可以在插件市场中安装与Spring Cloud相关的插件,如Spring Assistant等,以方便开发。
    • Eclipse:也是常用的Java开发工具。从Eclipse官方网站(https://www.eclipse.org/downloads/)下载适合的Eclipse版本,如Eclipse IDE for Enterprise Java Developers。同样可以通过安装相关插件来支持Spring Cloud开发。

二、创建Spring Cloud项目

  1. 使用Spring Initializr(推荐)
    • Spring Initializr是一个快速创建Spring Boot(Spring Cloud是构建在Spring Boot之上的)项目的工具。可以通过访问(https://start.spring.io/)在线创建项目。
    • 在网页上,你可以选择项目的基本信息,如:
      • Project:选择Maven或Gradle作为构建工具。
      • Language:选择Java。
      • Spring Boot版本:根据你的需求选择合适的版本,一般来说,较新的版本会包含更多的功能和修复。
      • GroupArtifact:定义项目的包名和项目名称。
      • Dependencies:这是关键的部分,对于Spring Cloud项目,需要添加相关的依赖。至少要添加Spring Cloud Discovery(如Eureka、Consul等)相关的依赖,用于服务发现。还可能需要添加Spring Cloud Config(用于配置管理)、Spring Cloud Gateway(用于API网关)等依赖,具体取决于你的项目架构。
    • 填写完这些信息后,点击“Generate”按钮,会下载一个包含项目骨架的压缩包。将其解压到本地开发目录中。
  2. 手动创建项目(不推荐但可行)
    • 创建一个普通的Maven或Gradle项目结构。在项目的pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目)文件中,需要添加Spring Boot和Spring Cloud的相关依赖。
    • 例如,在Maven项目中,需要添加以下基本的Spring Boot父依赖:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-parent</artifactId>
    <version>(你选择的Spring Boot版本)</version>
</parent>
  • 然后添加Spring Cloud相关依赖,如Eureka Server依赖(如果要搭建服务发现服务器):
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

三、配置Spring Cloud组件

  1. 服务发现(以Eureka为例)
    • 如果在项目中添加了Eureka Server依赖,需要在项目的主类上添加@EnableEurekaServer注解,将这个应用程序变成一个Eureka服务注册中心。
    • application.yml(或application.properties)文件中配置Eureka Server的相关参数,例如:
server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  • 这段配置将Eureka Server的端口设置为8761,并且不向其他Eureka Server注册自己(因为它是独立的服务注册中心),也不从其他Eureka Server获取注册信息。defaultZone指定了Eureka Server的服务注册和发现的地址。
  1. 服务提供者和消费者配置(以RestTemplate为例)
    • 对于服务提供者,需要在application.yml(或application.properties)文件中配置应用程序的名称和端口等信息。例如:
spring:
  application:
    name: service - provider
server:
  port: 8081
  • 然后在服务提供者的控制器类中,提供可以被其他服务调用的RESTful API。
  • 对于服务消费者,需要在主类中添加@EnableDiscoveryClient注解,以启用服务发现功能。同时,可以使用RestTemplate来调用其他服务。在配置类中,可以创建RestTemplate的Bean,例如:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class AppConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
  • 然后在服务消费者的业务逻辑代码中,可以使用RestTemplate来调用服务提供者的API,通过服务名称(而不是硬编码的IP地址和端口)来访问服务。例如:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.List;
@Service
public class MyService {
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private DiscoveryClient discoveryClient;
    public String callService() {
        List<String> services = discoveryClient.getServices();
        if (services.contains("service - provider")) {
            String serviceUrl = "http://service - provider/api/endpoint";
            return restTemplate.getForObject(serviceUrl, String.class);
        }
        return null;
    }
}

四、运行Spring Cloud项目

  1. 从IDE中运行
    • 如果使用IntelliJ IDEA或Eclipse等IDE,在项目创建并配置好后,可以直接在IDE中运行主类。例如,对于Eureka Server项目,运行带有@EnableEurekaServer注解的主类;对于服务提供者和消费者项目,运行带有@SpringBootApplication(或其他相关注解)的主类。
  2. 使用命令行运行(Maven或Gradle)
    • 如果是Maven项目,可以在项目根目录下使用mvn spring - boot:run命令来运行项目。
    • 如果是Gradle项目,可以使用gradle bootRun命令来运行项目。

标签:项目,Spring,Eureka,Maven,org,Cloud,搭建
From: https://www.cnblogs.com/java-note/p/18615052

相关文章

  • springboot毕设商会会员管理系统程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着市场经济的不断发展,商会在商业领域的重要性日益凸显。商会会员数量逐渐增多,会员之间的交流、合作以及商会对会员的管理变得越发复杂。传统的......
  • springboot毕设收纳师管理系统论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代社会,随着人们生活节奏的加快和生活品质要求的提高,收纳需求日益增长。然而,忙碌的生活使得很多人无暇顾及个人和家庭的收纳事务,收纳师这一新......
  • springboot毕设图像数字知识产权保护系统论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今数字化时代,图像作为一种重要的信息载体,其创作、传播和使用日益频繁。随着数字技术的飞速发展,图像的复制、篡改和盗用变得更加容易,这给图像......
  • Springboot家庭理财分析系统nxad6(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表家庭成员,支出信息,收入信息,股票信息,债权信息,资产信息,预警通知,公告信息,收入分类,支出分类,基金信息开题报告内容一、研究背景随着社会经济的发展和生活成......
  • Springboot家私导购系统5z229(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,家私类别,家私信息开题报告内容一、课题背景与意义随着互联网技术的飞速发展和电子商务的普及,消费者的购物习惯发生了显著变化。特别是在家居家具领域,消费......
  • Springboot家庭财务管理系统596n0(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表家庭成员,收入信息,支出信息,收入分类,支出分类,收入统计,支出统计,理财产品,产品购买,理财用户,家庭预算,财务健康开题报告内容一、研究背景与意义随着现代社......
  • 解决前端传给Spring Boot的中文数据乱码问题
    解决前端传给SpringBoot的中文数据乱码问题:1.前端设置编码:确保前端在发送请求时,请求头(RequestHeader)中的Content-Type指定正确的字符集,通常是application/json;charset=UTF-8或在表单提交时使用Accept-Charset:UTF-8。2.SpringBoot配置:或在XML配置中:<filter><......
  • 服务器centos7-AWVS搭建
    一、安装前的准备1.1下载安装包AWVS百度网盘下载并把安装包解压到/opt/AWVS路径中7zxacunetix_23.11.231123131_x64.7z-o/opt/AWVS/1.2更改host文件vim/etc/hosts将以下内容加在hosts文件尾部127.0.0.1erp.acunetix.com127.0.0.1erp.acunetix.com.::1erp.acune......
  • Linux 环境搭建(云服务器和XShell)
    文章目录一、Linux背景介绍1、发展史1.1、UNIX发展的历史1.2、Linux发展历史2、开源3、官网4、企业应用现状5、发行版本DebianUbuntu红帽企业级LinuxCentOS(已经停止维护了)FedoraKaliLinux......二、搭建Linux环境1、购买云服务器2、小结:三、使用XShell远......
  • 基于Springboot健身房管理系统【附源码+文档】
    ......