springCloud项目搭建

新建父maven项目

groupId:pers.xzp.springCloud
artifactId:springCloud

父项目中仅仅需要一个pom文件,用于管理模块的依赖统一、继承等

编辑pom文件

首先项目包结构为:pom

添加依赖声明:依赖声明,不会引入依赖,只有当模块引入依赖坐标的时候才会引入响应依赖

<properties>
   <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
   <java.version>1.8java.version>
   <maven.compiler.source>1.8maven.compiler.source>
   <maven.compiler.target>1.8maven.compiler.target>
   
   <spring-cloud.version>Finchley.SR2spring-cloud.version>
   <springboot.version>2.0.6.RELEASEspringboot.version>
properties>


<dependencyManagement>
   <dependencies>
       <dependency>
           <groupId>org.springframework.cloudgroupId>
           <artifactId>spring-cloud-dependenciesartifactId>
           <version>${spring-cloud.version}version>
           <type>pomtype>
           <scope>importscope>
       dependency>
       <dependency>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-dependenciesartifactId>
           <version>${springboot.version}version>
           <type>pomtype>
           <scope>importscope>
       dependency>
   dependencies>
dependencyManagement>

<dependencies>
   
   <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-webartifactId>
   dependency>
   <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-testartifactId>
   dependency>
   
   <dependency>
       <groupId>org.projectlombokgroupId>
       <artifactId>lombokartifactId>
       <optional>trueoptional>
   dependency>
   
   <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-devtoolsartifactId>
       
       
   dependency>
dependencies>

<build>
   <plugins>
       <plugin>
           <groupId>org.springframework.bootgroupId>
           <artifactId>spring-boot-maven-pluginartifactId>
           <configuration>
               <fork>truefork>  
           configuration>
       plugin>
   plugins>
build>

 

创建Eureka注册中心模块

Eureka服务端作为服务注册中心

模块名:eureka-registryCenter,端口:7001

引入Eureka服务端依赖

<dependencies>
   
   <dependency>
       <groupId>org.springframework.cloudgroupId>
       <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
   dependency>
dependencies>

编辑核心配置文件

server:
 #端口
port: 7001
eureka:
instance:
   #服务注册中心实列的主机名
  hostname: localhost
server:
   #关闭自我保护机制,防止失效的服务也被访问
#   enable-self-preservation: false
   #该配置可以修改检查失效的服务器,每隔5s去扫描检查失效的服务 默认60s
  eviction-interval-timer-in-ms: 5000
client:
   #是否向服务注册中心注册自己 自己注册了自己就是有毛病
  register-with-eureka: false
   #是否监测服务 翻译:获取注册
  fetch-registry: false
   #服务注册中心的配置内容,指定服务注册中心的位置
  service-url:
     #单机配置 就是访问注册中心的路径
    defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

创建项目引导类

作为Eureka服务端的引导类,需要被@EnableEurekaServer标注

//@EnableEurekaServer:标注的类表示Eureka服务端,作为注册中心
@EnableEurekaServer
@SpringBootApplication
public class RegistryCenter_7001 {
   public static void main(String[] args) {
       SpringApplication.run(RegistryCenter_7001.class);
  }
}

创建Eureka客户端:服务提供者

模块名字:provider-payment8001 端口号:8001

引入Eureka客户端依赖


<dependencies>
   <dependency>
       <groupId>org.springframework.cloudgroupId>
       <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
   dependency>
dependencies>

编辑核心配置文件

server:
port: 8001
# Eureka客户端取别名
spring:
application:
  name: payment
eureka:
client:
  service-url:
     # 注册Eureka客户端到服务注册中心 需要与注册中心配置对应
    defaultZone: http://localhost:7001/eureka

编码

实体类
@Data
public class User implements Serializable {
   private int id;
   private String name;
   @DateTimeFormat(pattern = "yyyy-MM-dd")
   private Date birthday;

   public User(int id, String name, Date birthday) {
       this.id = id;
       this.name = name;
       this.birthday = birthday;
  }

   public User() {
  }
}
Controller控制器
//@Slf4j:使用log4j日志需要,默认生成log实例
@Slf4j
@Controller
public class UserController {

   private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   @GetMapping("/getalluser")
   @ResponseBody
   public  String getAllUser(){
       User user = null;
       try {
           user = new User(1,"张三",sdf.parse("2020-10-10"));
      } catch (ParseException e) {
           log.debug("日期类型转换失败");
      }
       return user.toString();
  }
}

测试

有服务端和客户端,类似WebSocket编程,需要我们先启动服务端;

因此,我们需要先启动Eureka注册中心eureka-registryCenter,然后在启动Eureka客户端provider-payment8001

浏览器输入:http://localhost:7001,会进入了Eureka服务注册中心

输入:http://localhost:8001/getalluser,会访问到服务提供者的数据

输入:http://localhost:7001/getalluser

springCloud项目搭建_第1张图片

 

小结

注册中心可以类比tomcat管理javaweb应用

Eureka有服务端和客户端概念,可以参考WebSocket编程

你可能感兴趣的:(springCloud项目搭建)