zoukankan      html  css  js  c++  java
  • spring cloud (三、服务提供者demo_provider)

           spring cloud (一、服务注册demo_eureka)   

          spring cloud (二、服务注册安全demo_eureka)

          创建一个服务提供者注册到服务注册中心,跟前一个案例一样创建一个spring boot 项目 ;

         pom文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test.provider</groupId>
        <artifactId>provider</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>provider</name>
        <description>provider</description>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
             <version>1.5.3.RELEASE</version>
        <relativePath />
        </parent>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
     
        </dependencies>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Dalston.SR3</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    </project>

           配置文件如下

    #应用(服务)名称
    spring.application.name=eureka-provider
    #端口号
    server.port=8762
    #注册的账号密码地址
    eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:3333/eureka/

            启动类

    /**
     * 服务提供者
     */
    @EnableDiscoveryClient
    @SpringBootApplication
    
    public class ProviderApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
    }

         到这一步其实已经配置完成了,基本的代码;但是启动会报错,虽然配置了登录的账号和密码;但是由于spring cloud 的一些版本是需要修改注册中心的启动配置

       


         接下来的改动注意,这是是改服务注册管理那边的代码;

         我们在 spring cloud (一、服务注册demo_eureka)   中加上一个自己的类,加上如下的注解,然后再重新启动即可注册成功

        

    @EnableWebSecurity
    public class MyWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().disable();
            super.configure(http);
        }
    
    }

          这个时候我们先启动服务管理的demo,然后再启动服务提供者;最后登录服务控制台查看;

       

           这个时候我们可以看到服务注册中心多了一个服务;

       


           到这里虽然可以注册成功了。看起来是没有问题了,不过确实有一个问题;

           就是你把提供服务这边的demo程序停了,但是服务注册页面却显示还存在;

           处理这个问题,我们需要在服务注册的demo中加上自动检测失效的配置;

         

    #启用主动失效,并且每次主动失效检测间隔为10s
    eureka.server.eviction-interval-timer-in-ms=10000
    eureka.server.enable-self-preservation=false

     

  • 相关阅读:
    多线程刷题
    Spring Security的<form>表单的一些细节以及configure(HttpSecurity http)的配置
    Spring Security配置loginPage后,默认的表单登录请求接口也是这个
    一个留了两个星期的bug,基础忘光了
    连接数据库
    反射--笔记(第一篇)
    让图片左右移动
    Java注解
    HTTP协议
    使用servlet连接数据库删除数据
  • 原文地址:https://www.cnblogs.com/qq376324789/p/10063203.html
Copyright © 2011-2022 走看看