Eureka管理界面自定义
开发工具:SpringToolSuite 4
Spring-cloud版本:Greenwich.SR2,
近来公司用Eureka来做服务管理,要把服务端的界面增加些自己公司的属性上去,我简单的记录下修改的过程,过程如:
构建Eureka项目
创建Eureka项目
本人用的是SpringToolSuite的工具来构建Eureka项目,个人喜欢,工具可自行选择,pom.xml配置文件如下:
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-cloud.version>Greenwich.SR6</spring-cloud.version>
    </properties>
    <!-- 引入 eureka-serverr的核心包 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
编写启动类
@EnableEurekaServer
@SpringBootApplication
public class ServerEurekaApplication extends SpringBootServletInitializer {
    private static final Logger logger = LoggerFactory.getLogger(ServerEurekaApplication.class);
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ServerEurekaApplication.class, args);
        ConfigurableEnvironment env = context.getEnvironment();
        logger.info(
                "\n----------------------------------------------------------\n\t"
                        + "Application '{}' is running! Access URLs:\n\t" + "Local: \t\thttp://localhost:{}"
                        + "\n----------------------------------------------------------",
                env.getProperty("spring.application.name"), env.getProperty("server.port"));
        logger.info("ServerEurekaApplication 已启动成功.....");
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }
}
注意:
springboot启动方式:
    1、可以直接在main方法里用SpringApplication.run(EurekaServerApplication.class, args);运行
    2、使用SpringBootServletInitializer启动,不过需要实现configure方法,这样用的第二种
区别暂时就不在此讲解了。
配置文件
配置application.properties
# eureka 端口
server.port=5761
spring.application.name=eureka
# eureka 配置
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=http://${eureka.instance.hostname}:${server.port}
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=false
eureka.server.enable-self-preservation=false
eureka.client.registry-fetch-interval-seconds=30
eureka.instance.lease-renewal-interval-in-seconds=15
eureka.instance.lease-expiration-duration-in-seconds=45
# logging文件配置
logging.config=classpath:logback-spring.xml
info.logging.path=/eureka/logs/custom-eureka
启动

自定义Eureka页面
修改页面模板
在本地仓库中找到spring-cloud-netflix-eureka-server.jar文件所在的目录,版本根据maven引入的版本号
打开jar文件
eureka.jar目录下的templates文件夹下存放了Erueka Server管理页面的模板文件,修改时可以将模板文件复制出来到当前项目的resources/templates/eureka目录下,然后进行自定义界面内容。
- header.ftlh:HOEM页面导航(导航模板页面模板)
- lastn.ftlh:页面整合模板,整合了header.ftlh与navbar.ftlh增加服务注册信息展示
- navbar.ftlh:System Status+DS Replicas(服务状态和集群信息页面模板)
- status.ftlh:Instance Info区域(显示服务器的基本状态)
找到status.ftlh文件,该文件是显示InstanceInfo 后面这一栏,文件中增加版权信息,代码如下:
<footer style="position: fixed;background-color: rgba(43, 166, 166, 0.5);color: #FFF;bottom: 0;left: 0;right: 0;text-align: center;height: 20px;
lie-height: 20px;">Copyright (C) Eureka 2019-2060, All Rights Reserved XXXXX</footer>
查看效果
重新运行eureka项目,访问原先的页面可以看到已经增加了公司版权一栏。
总结
以上是简单的修改了eureka页面的展示内容,当然再复杂的信息可以自行发挥,如包括可以修改logo,中文翻译,修改样式等。
由于本章设计的代码比较多,请结合源码进行学习
源码参考:https://gitee.com/viphzc/springcloud
 
  
  
  
 
