SpringBoot2.x搭建SpringBootAdmin2.x
2024-08-29 01:54:42
1 说明
- 全部配置基于
1.8.0_111
- 当前SpringBoot使用
2.0.5
- SpringBootAdmin基于Eureka进行Client发现,Eureka搭建参见SpringBoot2.x搭建Eureka
- SpringBootAdmin项目文档参见SpringBootAdmin参考文档
2 创建项目
在SpringBoot项目生成器中,输入Group
和Artifact
,如下配置:
3 编辑pom.xml文件
pom.xml中新添加如下内容:
<properties>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>
<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>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
4 修改application.properties为application.yml文件
编辑application.properties为application.yml
文件,添加以下内容:
server:
port: 8099
spring:
application:
name: SpringBootAdmin
security:
user:
name: anxminise
password: 123456
boot:
admin:
ui:
title: 忧臣解读
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
eureka:
instance:
metadata-map:
user.name: anxminise
user.password: 123456
easeRenewalIntervalInSeconds: 10
health-check-url-path: /actuator/health
ip-address: 127.0.0.1
prefer-ip-address: true
instance-id: ${eureka.instance.ip-address}:${server.port}
client:
registryFetchIntervalSeconds: 5
serviceUrl:
defaultZone: http://anxminise:123456@127.0.0.1:8888/eureka/
配置参数解释:
参数 | 说明 |
---|---|
security.user.name | SpringBootAdmin登录时的用户名 |
security.user.password | SpringBootAdmin登录时的密码 |
eureka.instance.metadata-map.user.name | SpringBootAdmin本身作为一个Eureka客户端被发现,这里由于SpringBootAdmin需要进行登录,因此,此处配置SpringBootAdmin登录时使用的用户名 |
eureka.instance.metadata-map.user.password | 同上,配置SpringBootAdmin登录使用的密码 |
5 编辑SpbadminApplication.java文件
最后编辑SpbadminApplication.java文件,修改为:
@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class SpbadminApplication {
public static void main(String[] args) {
SpringApplication.run(SpbadminApplication.class, args);
}
@Configuration
public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
private final String adminContextPath;
public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
this.adminContextPath = adminServerProperties.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl(adminContextPath + "/");
http.authorizeRequests()
.antMatchers(adminContextPath + "/assets/**").permitAll()
.antMatchers(adminContextPath + "/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
.logout().logoutUrl(adminContextPath + "/logout").and()
.httpBasic().and()
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers(
adminContextPath + "/instances",
adminContextPath + "/actuator/**"
);
}
}
}
6 编译并启动运行
注:本次SpringBootAdmin是基于Eureka搭建的,需要先启动Eureka
./mvnw clean package -DskipTests #编辑应用
java -jar target/spbadmin-0.0.1-SNAPSHOT.jar #启动应用,注:jar包的名称应换成自己的
7 Eureka客户端监控
SpringBootAdmin的作用是:监控Eureka中的微服务,这里的微服务,我们使用SpringBoot2.x进行开发,对于SpringBoot2.x的SpringBoot项目,只需在application.yml
中新加入以下内容:
logging:
path: logs/log
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
参数解释说明
参数 | 说明 |
---|---|
logging.path | 配置日志的存放路径,此处用于SpringBootAdmin的日志监控 |
management.* | 配置SpringBoot的全部监控点,此处注意:当前配置未对endpoint进行访问保护,勿对外网开放,后续我们加入对其的访问保护 |
最新文章
- 微信接口php
- Java重点之小白解析--浅谈HashMap与HashTable
- salesforce 零基础学习(四十)Custom Settings简单使用
- POJ 2386 Lake Counting(深搜)
- MFC 修改 单文档 SDI 窗体 标题
- Java--常用类summary
- MATLAB 函数
- Send User to a Portal Folder
- 谷歌眼镜--UI指南
- session销毁
- SafeHandle和Dispose z
- Rank of Tetris(hdu1811拓扑排序+并查集)
- atitit。自己定义uml MOF EMF体系eclipse emf 教程o7t
- IOS 代码管理工具
- 手机应用PC端演示工具介绍
- 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
- Django和SQLAlchemy,哪个Python ORM更好?
- jQuery筛选总结
- Vue.js路由
- php 两个值进行比较的问题