下面列出了怎么用org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void customize(ConfigurableApplicationContext context) {
if (context instanceof EmbeddedWebApplicationContext
&& !AdminEndpointApplicationRunListener.isEmbeddedServletServer(context.getEnvironment())) {
MetaDataProvider metaDataProvider = context.getBean(MetaDataProvider.class);
EmbeddedServletContainer embeddedServletContainer = new EmbeddedServletContainer() {
@Override
public void start() throws EmbeddedServletContainerException {
}
@Override
public void stop() throws EmbeddedServletContainerException {
}
@Override
public int getPort() {
return metaDataProvider.getServerPort();
}
};
context.publishEvent(new EmbeddedServletContainerInitializedEvent((EmbeddedWebApplicationContext) context, embeddedServletContainer));
}
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
int port = event.getSource().getPort();
String serverAddress = ngrokProperties.getServerAddress();
int serverPort = ngrokProperties.getServerPort();
String subdomain = ngrokProperties.getSubdomain();
String hostname = ngrokProperties.getHostname();
String proto = ngrokProperties.getProto();
int remotePort = ngrokProperties.getRemotePort();
String httpAuth = ngrokProperties.getHttpAuth();
Tunnel tunnel = new Tunnel.TunnelBuild()
.setPort(port)
.setProto(proto)
.setSubDomain(subdomain)
.setHostname(hostname)
.setRemotePort(remotePort)
.setHttpAuth(httpAuth)
.build();
new NgrokClient(serverAddress, serverPort)
.addTunnel(tunnel).start();
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
int port = event.getEmbeddedServletContainer().getPort();
final String host = getHost();
Address.getInstance()
.setHost(host)
.setPort(port)
.setDomain(String.join(":", host, String.valueOf(port)));
}
/**
* Callback used to run the bean.
* 初始化路由配置的数据,避免gateway 依赖业务模块
*
*/
@EventListener(value = {EmbeddedServletContainerInitializedEvent.class})
public void init() {
log.info("开始初始化路由配置数据");
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(CommonConstant.DEL_FLAG, CommonConstant.STATUS_NORMAL);
List<SysZuulRoute> routeList = sysZuulRouteService.selectList(wrapper);
if (CollUtil.isNotEmpty(routeList)) {
redisTemplate.opsForValue().set(CommonConstant.ROUTE_KEY, routeList);
log.info("更新Redis中路由配置数据:{}条", routeList.size());
}
log.info("初始化路由配置数据完毕");
}
@EventListener(value = {EmbeddedServletContainerInitializedEvent.class})
public void init() {
MonitoringHelper.initMocks();
FilterLoader.getInstance().setCompiler(new GroovyCompiler());
FilterFileManager.setFilenameFilter(new GroovyFileFilter());
try {
FilterFileManager.init(10, groovyPath);
} catch (Exception e) {
log.error("初始化网关Groovy 文件失败 {}", e);
}
log.warn("初始化网关Groovy 文件成功");
}
@Bean
public ApplicationListener<EmbeddedServletContainerInitializedEvent> getApplicationListenerEmbeddedServletContainerInitializedEvent() {
return new ApplicationListener<EmbeddedServletContainerInitializedEvent>() {
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
int serverPort = event.getEmbeddedServletContainer().getPort();
logger.debug("Saving port number = {}", serverPort);
resttemplateConfig.setPort(serverPort);
}
};
}
@Bean
public ApplicationListener<EmbeddedServletContainerInitializedEvent> getApplicationListenerEmbeddedServletContainerInitializedEvent() {
return new ApplicationListener<EmbeddedServletContainerInitializedEvent>() {
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
int serverPort = event.getEmbeddedServletContainer().getPort();
logger.debug("Saving port number = {}", serverPort);
resttemplateConfig.setPort(serverPort);
}
};
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
int serverPort = event.getEmbeddedServletContainer().getPort();
String ip = getIp();
Constants.address = ip+":"+serverPort;
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
this.serverPort = event.getEmbeddedServletContainer().getPort();
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
port = event.getEmbeddedServletContainer().getPort();
client = new CrnkClient("http://localhost:" + port + "/api");
client.addModule(new ClientTestModule());
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
this.registerCenter4Provider.registerServer(buildServerDto());
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent e) {
localPort = e.getEmbeddedServletContainer().getPort();
logger.info("after runtime init, local server port: {}", localPort);
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
this.port = event.getEmbeddedServletContainer().getPort();
}
@Override
public void onApplicationEvent(
EmbeddedServletContainerInitializedEvent event) {
port = event.getEmbeddedServletContainer().getPort();
}
@Override
public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
httpPort = event.getEmbeddedServletContainer().getPort();
}