SpringBootAdmin实践
http方式注册
1 服务端配置
pom配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
yml配置
server:
port: 9006
spring:
application:
name: admin-server
security:
user:
name: admin
password: admin
启动类
@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminApplication.class, args);
}
}
WebSecurity配置类
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
//instances接口是客户端调用用于http注册使用的,不配置,http方式注册会不成功
.antMatchers("/instances").permitAll()
//不配置aassets目录,登录页的图片不显示
.antMatchers("/assets/**").permitAll()
.antMatchers( "/login" ).permitAll()
.anyRequest().authenticated()
.and().formLogin().loginPage("/login" )
.and().csrf().disable();
}
}
2 客户端配置
pom配置
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
yml配置
server:
port: 9007
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:9006
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
效果
3 服务掉线发送邮件
服务端增加配置
pom配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
yml配置
spring:
mail:
host: smtp.qq.com
username: 1539261793@qq.com
password: xxxxxxxx
port: 587
boot:
admin:
notify:
mail:
to: 1539261793@qq.com
#必须要有from
from: 1539261793@qq.com
遇到问题: com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user
原因: 没有指定spring.boot.admin.notify.mail.from
效果: