Nacos-spring-samples解析
小白们在看这个用例的时候得注意,这个东东不知道他是为了让大家能够快速体验还是怎么的,
反正我一开始没整明白,有点想当然的去理解了;
我一直以为这个Nacos-spring-samples只是一个简单的客户端,跟我之前的自己用例中去调用nacos一样(没有去看他的代码),
但是后面去看的时候有点想当然了,这个Nacos-spring-samples启动的时候触发了一个核心简易的nacos平台,看下他的配置文件
<listener>
<listener-class>com.alibaba.nacos.embedded.web.servlet.EmbeddedNacosHttpServerListener</listener-class>
</listener>
这个监听服务启动的时候会设置他的系统属性,就是nacos的IP地址加端口号,这个有点牛逼,动态的!
public class EmbeddedNacosHttpServerListener implements ServletContextListener {
private static final String SERVER_ADDRESS_PROPERTY_NAME = "nacos.server-addr";
private EmbeddedNacosHttpServer httpServer;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
try {
if (!System.getProperties().containsKey(SERVER_ADDRESS_PROPERTY_NAME)) {
httpServer = new EmbeddedNacosHttpServer();
httpServer.start(false);
System.setProperty(SERVER_ADDRESS_PROPERTY_NAME, "127.0.0.1:" + httpServer.getPort());
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
if (httpServer != null) {
httpServer.stop();
}
}
}
public EmbeddedNacosHttpServer start(boolean blocking) {
httpServer.createContext(path, nacosConfigHttpHandler);
nacosConfigHttpHandler.init();
if (blocking) {
startServer();
} else {
future = executorService.submit(new Runnable() {
@Override
public void run() {
startServer();
}
});
}
return this;
}
private void startServer() {
httpServer.start();
String threadName = Thread.currentThread().getName();
System.out.printf("[%s] Embedded Nacos HTTP Server(port : %d) is starting...%n", threadName, port);
System.out.printf("[%s] Embedded Nacos HTTP Server mapped request URI : %s...%n", threadName, path);
}
这样他就启动了一个微缩版的nacos客户端平台,而不是我们通常理解的下面这个平台,之前我一直用下面这个平台的参数去做测试,(# ̄~ ̄#)

提醒大家看的时候不要想当然,多看看代码,把下面这个方法简单的设置下,就可以设置成我们之前想当然的nacos
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.setProperty(SERVER_ADDRESS_PROPERTY_NAME, "127.0.0.1:" +"8848"); }
Nacos-spring-samples解析的更多相关文章
- Spring源代码解析
Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.itey ...
- Spring源代码解析(收藏)
Spring源代码解析(收藏) Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的 ...
- Spring如何解析Dubbo标签
1. 要了解Dubbo是如何解析标签的,首先要清楚一点就是Spring如何处理自定义标签的,因为Dubbo的标签可以算是Spring自定义标签的一种情况: 2. Spring通过两个接口来解析自定义的 ...
- Spring Security 解析(四) ——短信登录开发
Spring Security 解析(四) -- 短信登录开发 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security ...
- Spring Security 解析(七) —— Spring Security Oauth2 源码解析
Spring Security 解析(七) -- Spring Security Oauth2 源码解析 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因 ...
- Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析
Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...
- Spring Security 解析(五) —— Spring Security Oauth2 开发
Spring Security 解析(五) -- Spring Security Oauth2 开发 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决 ...
- Spring Security 解析(三) —— 个性化认证 以及 RememberMe 实现
Spring Security 解析(三) -- 个性化认证 以及 RememberMe 实现 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...
- Spring Security 解析(二) —— 认证过程
Spring Security 解析(二) -- 认证过程 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...
- Spring Security 解析(一) —— 授权过程
Spring Security 解析(一) -- 授权过程 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...
随机推荐
- linux命令学习笔记(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族 中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用 ...
- ACM学习历程—HDU1030 Delta-wave(数学)
Description A triangle field is numbered with successive integers in the way shown on the picture be ...
- CTSC2017 游记
Day0 从早上8点开始坐车 公交--火车--地铁--地铁--步行--打的. 下午3:30我们终于报道完毕来到了试机地点. 这电脑简直比学校的电脑高级的不知道哪里去了. 内存3.8G,,,学校就2G. ...
- C/C++面试题总结(2)
C++部分: 1.static(静态)变量有什么作用? 2.virtual关键字用法 3.const有哪些作用 或<王道程序员求职宝典>P95 4.new/delete与malloc/fr ...
- DataGrid 支持字符截断显示
DataGrid支持截断时, 需要分2部分, DataGridColumnHeader和DataGridCell. 1)创建上述2部分的ControlTemplate . 2)把其中的ContentP ...
- flask+uswgi+nginx+python3.6的venv发布网站ubuntu14.04
---------------------------nginx--------------- sudo apt-get install nginx sudo apt-get remove nginx ...
- java--序列化及其算法透析
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍. Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述 ...
- JavaScript-Tool:jquery.cxselect.js
ylbtech-JavaScript-Tool:jquery.cxselect.js 1.返回顶部 1.jquery.cxselect.js /*! * jQuery cxSelect * @name ...
- python oop培训文档里面的 正宗oop、多个函数间反复return传参、多个文件无限复制粘贴扣字、无效废物滑稽类4种方式的例子。(2)
把文档里面说的几种范式发出来. 4种编程范式实现一个人吃喝拉撒长身体的代码.语法很简单,思想模拟了所有程序员写代码时候的代码规划设计想法. 0.我不反对复制粘贴的写法,可以百度搜索复制粘贴网上现有的, ...
- shell入门-grep过滤-1
正则表达式,就是一个字符串.有一定的规律.我们用指定的字符串匹配一个指定的行.指定的字符串就是正则表达式. 正则表达式有这几个工具:grep egrep sed awk 命令:gerep 说明:过滤出 ...