小白们在看这个用例的时候得注意,这个东东不知道他是为了让大家能够快速体验还是怎么的,

反正我一开始没整明白,有点想当然的去理解了;

我一直以为这个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解析的更多相关文章

  1. Spring源代码解析

    Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.itey ...

  2. Spring源代码解析(收藏)

    Spring源代码解析(收藏)   Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的 ...

  3. Spring如何解析Dubbo标签

    1. 要了解Dubbo是如何解析标签的,首先要清楚一点就是Spring如何处理自定义标签的,因为Dubbo的标签可以算是Spring自定义标签的一种情况: 2. Spring通过两个接口来解析自定义的 ...

  4. Spring Security 解析(四) ——短信登录开发

    Spring Security 解析(四) -- 短信登录开发   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security ...

  5. Spring Security 解析(七) —— Spring Security Oauth2 源码解析

    Spring Security 解析(七) -- Spring Security Oauth2 源码解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因 ...

  6. Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析

    Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...

  7. Spring Security 解析(五) —— Spring Security Oauth2 开发

    Spring Security 解析(五) -- Spring Security Oauth2 开发   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决 ...

  8. Spring Security 解析(三) —— 个性化认证 以及 RememberMe 实现

    Spring Security 解析(三) -- 个性化认证 以及 RememberMe 实现   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把 ...

  9. Spring Security 解析(二) —— 认证过程

    Spring Security 解析(二) -- 认证过程   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...

  10. Spring Security 解析(一) —— 授权过程

    Spring Security 解析(一) -- 授权过程   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...

随机推荐

  1. 【leetcode刷题笔记】ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  2. 【leetcode刷题笔记】Search a 2D Matrix

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  3. Apache+OpenSSL实现证书服务器提供HTTPS

    通过 Linux+Apache+OpenSSL 实现 SSL ( Secure Socket Layer )证书服务器,提供安全的 HTTPS ( Hypertext Transfer Protoco ...

  4. POJ2080:Calendar(计算日期)

    Calendar Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12842   Accepted: 4641 Descrip ...

  5. SQL介绍(1)

    SQL 是用于访问和处理数据库的标准的计算机语言. SQL,指结构化查询语言,全称是 Structured Query Language. SQL 让您可以访问和处理数据库. SQL 是一种 ANSI ...

  6. LAMP 2.0Apache日志切割

    每次访问网站就会产生若干条日志,当然前提是已经配置了日志. 配置日志的文件在 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 把注释掉的这两行打 ...

  7. wdcp安全设置,让你的后台,只有你自己能访问

    wdcp安全设置,让你的后台,只有你自己能访问 wdcp的后台,默认端口,是8080,可以修改为其它端口wdcp的后台,可以限制IP地址的访问,也可以限制域名的访问做了这些限制与设置后,已相对安全了, ...

  8. 【总结整理】JQuery基础学习---样式篇

    进入官方网站获取最新的版本 http://jquery.com/download/    中文 https://www.jquery123.com/ <!--JQuery:轻量级的JavaScr ...

  9. mysql数据库int(5)以及varchar(20)长度表示的是什么?

    在mysql5.x版本的数据库中: int类型数据的字节大小是固定的4个字节: 但是int(5)和int(11)区别在于,显示的数据位数一个是5位一个是11位,在开启zerofill(填充零)情况下, ...

  10. leetcode-002

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...