Y9ConsulAutoServiceRegistrationListener

This commit is contained in:
dzj 2024-02-02 10:05:46 +08:00
parent c09fefd44e
commit c5d8b00e22
4 changed files with 49 additions and 18 deletions

View File

@ -1,30 +1,23 @@
package net.risesoft.demo;
import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import net.risesoft.demo.entity.User;
import net.risesoft.demo.repository.UserRepository;
@Component
public class OnApplicationReady implements ApplicationListener<ApplicationReadyEvent> {
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
//System.out.println(event.getApplicationContext().getEnvironment().getProperty("path"));
String[] ss = event.getApplicationContext().getBeanNamesForType(ConnectionDetails.class);
for (String s : ss) {
System.out.println(s);
}
UserRepository userRepository = event.getApplicationContext().getBean(UserRepository.class);
User user = new User();
user.setName("张三");
user.setAge(20);
userRepository.save(user);
/*
* String[] ss =
* event.getApplicationContext().getBeanNamesForType(ConnectionDetails.class);
* for (String s : ss) { System.out.println(s); }
*
* UserRepository userRepository =
* event.getApplicationContext().getBean(UserRepository.class); User user = new
* User(); user.setName("张三"); user.setAge(20); userRepository.save(user);
*/
}
}

View File

@ -1,5 +1,8 @@
package net.risesoft.demo.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.client.serviceregistry.Y9ConsulAutoServiceRegistrationListener;
import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -11,4 +14,10 @@ public class Y9Config {
return new Y9Context();
}
@Bean
@ConditionalOnMissingBean(ConsulAutoServiceRegistrationListener.class)
public Y9ConsulAutoServiceRegistrationListener y9ConsulAutoServiceRegistrationListener() {
return new Y9ConsulAutoServiceRegistrationListener();
}
}

View File

@ -0,0 +1,27 @@
package org.springframework.cloud.client.serviceregistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration;
import org.springframework.context.ApplicationListener;
public class Y9ConsulAutoServiceRegistrationListener implements ApplicationListener<ApplicationReadyEvent> {
@Autowired
private ConsulAutoServiceRegistration consulAutoServiceRegistration;
@Autowired
private ConsulDiscoveryProperties consulProperties;
@Autowired
private ServerProperties serverProperties;
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
// 参考 ConsulAutoServiceRegistrationListener
consulAutoServiceRegistration.getPort().compareAndSet(0, serverProperties.getPort());
consulAutoServiceRegistration.start();
}
}

View File

@ -7,7 +7,7 @@ management:
exposure:
include: '*'
server:
port: 8081
port: 9000
servlet:
context-path: /demo01
encoding:
@ -35,6 +35,8 @@ spring:
consul:
host: ${CONSUL_HOST:localhost}
port: ${CONSUL_PORT:8500}
config:
enabled: false
discovery:
register-health-check: true
healthCheckPath: ${server.servlet.context-path}/actuator/health