下面列出了怎么用org.springframework.boot.context.embedded.EmbeddedWebApplicationContext的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));
}
}
/**
* spring boot 服务主入口
*
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Bootstrap.class, args);
if (context instanceof EmbeddedWebApplicationContext) {
int port = ((EmbeddedWebApplicationContext) context).getEmbeddedServletContainer().getPort();
String contextPath = context.getApplicationName();
String url = String.format(Locale.US, "http://localhost:%d%s", port, contextPath);
if (log.isInfoEnabled()) {
//提示项目用到的相关配置文件
log.info(" =========== ${user.dir}={} =========== ", System.getProperty("user.dir"));
log.info(" =========== ${java.io.tmpdir}={} =========== ", System.getProperty("java.io.tmpdir"));
String dashes = "------------------------------------------------------------------------";
log.info("Access URLs:\n{}\n\tLocal: \t\t{}\n{}", dashes, url, dashes);
}
}
}
private Manager findManager(ApplicationContext applicationContext) {
if (applicationContext instanceof EmbeddedWebApplicationContext) {
EmbeddedServletContainer container = ((EmbeddedWebApplicationContext) applicationContext).getEmbeddedServletContainer();
if (container instanceof TomcatEmbeddedServletContainer) {
Context context = findContext((TomcatEmbeddedServletContainer) container);
if (context != null) {
return context.getManager();
}
}
}
return null;
}
@Override
public void finished(ConfigurableApplicationContext context,
Throwable exception) {
applicationContext = (EmbeddedWebApplicationContext) context;
cdl.countDown();
}