当前位置: 首页 > news >正文

国外网站需要备案asp网站开发工具

国外网站需要备案,asp网站开发工具,设计制作图片,临沂网站建设教程一 、contextInitialized() eureka-core里面,监听器的执行初始化的方法,是contextInitialized()方法,这个方法就是整个eureka-server启动初始化的一个入口。 Overridepublic void contextInitialized(ServletContextEvent event) {try {init…

一 、contextInitialized()

eureka-core里面,监听器的执行初始化的方法,是contextInitialized()方法,这个方法就是整个eureka-server启动初始化的一个入口。

 @Overridepublic void contextInitialized(ServletContextEvent event) {try {initEurekaEnvironment();initEurekaServerContext();ServletContext sc = event.getServletContext();sc.setAttribute(EurekaServerContext.class.getName(), serverContext);} catch (Throwable e) {logger.error("Cannot bootstrap eureka server :", e);throw new RuntimeException("Cannot bootstrap eureka server :", e);}}

二、initEurekaEnvironment()

我们可以看到第一行代码就是 initEurekaEnvironment();我们点进去可以看到

  /*** Users can override to initialize the environment themselves.*/protected void initEurekaEnvironment() throws Exception {logger.info("Setting the eureka configuration..");String dataCenter = ConfigurationManager.getConfigInstance().getString(EUREKA_DATACENTER);if (dataCenter == null) {logger.info("Eureka data center value eureka.datacenter is not set, defaulting to default");ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_DATACENTER, DEFAULT);} else {ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_DATACENTER, dataCenter);}String environment = ConfigurationManager.getConfigInstance().getString(EUREKA_ENVIRONMENT);if (environment == null) {ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_ENVIRONMENT, TEST);logger.info("Eureka environment value eureka.environment is not set, defaulting to test");}}

在这里,其实会调用ConfigurationManager.getConfigInstance()方法,这个方法,其实就是初始化ConfigurationManager的实例,也就是一个配置管理器的初始化的这么一个过程。

ConfigurationManager是什么呢?看字面意思都猜的出来,配置管理器,管理eureka自己的所有的配置,读取配置文件里的配置到内存里,供后续的eureka-server运行来使用。

三、创建AbstractConfiguration

我们点击getConfigInstance,可以看到下面的代码

 public static AbstractConfiguration getConfigInstance() {if (instance == null) {synchronized (ConfigurationManager.class) {if (instance == null) {instance = getConfigInstance(Boolean.getBoolean(DynamicPropertyFactory.DISABLE_DEFAULT_CONFIG));}}}return instance;}

这是使用double check + volatile创建了一个AbstractConfiguration实例。

单例模式一个经典的作用,就是将配置作为单例,但是一般来说如果你要自己解析配置文件,读取配置的话,一般来说除非你是底层自研的框架。此时你可以设计一个ConfigurationManager,就是一个配置管理器,一般这个会做成单例的。

接下来我们看下createDefaultConfigInstance()方法。

private static AbstractConfiguration createDefaultConfigInstance() {ConcurrentCompositeConfiguration config = new ConcurrentCompositeConfiguration();  try {DynamicURLConfiguration defaultURLConfig = new DynamicURLConfiguration();config.addConfiguration(defaultURLConfig, URL_CONFIG_NAME);} catch (Throwable e) {logger.warn("Failed to create default dynamic configuration", e);}if (!Boolean.getBoolean(DISABLE_DEFAULT_SYS_CONFIG)) {SystemConfiguration sysConfig = new SystemConfiguration();config.addConfiguration(sysConfig, SYS_CONFIG_NAME);}if (!Boolean.getBoolean(DISABLE_DEFAULT_ENV_CONFIG)) {EnvironmentConfiguration envConfig = new EnvironmentConfiguration();config.addConfiguration(envConfig, ENV_CONFIG_NAME);}ConcurrentCompositeConfiguration appOverrideConfig = new ConcurrentCompositeConfiguration();config.addConfiguration(appOverrideConfig, APPLICATION_PROPERTIES);config.setContainerConfigurationIndex(config.getIndexOfConfiguration(appOverrideConfig));return config;}

1)创建一个ConcurrentCompositeConfiguration实例,这个东西,其实就是代表了所谓的配置,包括了eureka需要的所有的配置。在初始化这个实例的时候,调用了clear()方法

 public ConcurrentCompositeConfiguration(){clear();}

2)我们点击clear可以看到

  @Overridepublic final void clear(){fireEvent(EVENT_CLEAR, null, null, true);configList.clear();namedConfigurations.clear();// recreate the in memory configurationcontainerConfiguration = new ConcurrentMapConfiguration();containerConfiguration.setThrowExceptionOnMissing(isThrowExceptionOnMissing());containerConfiguration.setListDelimiter(getListDelimiter());containerConfiguration.setDelimiterParsingDisabled(isDelimiterParsingDisabled());containerConfiguration.addConfigurationListener(eventPropagater);configList.add(containerConfiguration);overrideProperties = new ConcurrentMapConfiguration();overrideProperties.setThrowExceptionOnMissing(isThrowExceptionOnMissing());overrideProperties.setListDelimiter(getListDelimiter());overrideProperties.setDelimiterParsingDisabled(isDelimiterParsingDisabled());overrideProperties.addConfigurationListener(eventPropagater);fireEvent(EVENT_CLEAR, null, null, false);containerConfigurationChanged = false;invalidate();}

fireEvent()发布了一个事件(EVENT_CLEAR),fireEvent()这个方法其实是父类的方法,牵扯比较复杂的另外一个项目(ConfigurationManager本身不是属于eureka的源码,是属于netflix config项目的源码,暂不学习。

总的来说,就是往ConcurrentCompositeConfiguration实例加入了一堆别的config,然后搞完了以后,就直接返回了这个实例,就是作为所谓的那个配置的单例

四、初始化数据中心的配置,如果没有配置的话,就是DEFAULT data center

 String dataCenter = ConfigurationManager.getConfigInstance().getString(EUREKA_DATACENTER);if (dataCenter == null) {logger.info("Eureka data center value eureka.datacenter is not set, defaulting to default");ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_DATACENTER, DEFAULT);} else {ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_DATACENTER, dataCenter);

五、初始化eurueka运行的环境,如果你没有配置的话,默认就给你设置为test环境

String environment = ConfigurationManager.getConfigInstance().getString(EUREKA_ENVIRONMENT);if (environment == null) {ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_ENVIRONMENT, TEST);logger.info("Eureka environment value eureka.environment is not set, defaulting to test");}

六、initEurekaEnvironment的初始化环境的逻辑,就结束了

七、流程图

参考:Eureka 学习笔记(六)Eureka初始化环境

http://www.yayakq.cn/news/66700/

相关文章:

  • 合肥网站开发外包公司wordpress实训
  • 企业网站建设制作多少钱软文营销的特点有哪些
  • 二级a做爰片免费网站西安网站推广建设
  • 做网站的分工wordpress数据库版本号
  • 淄博营销型网站建设中英双语网站模板
  • 网站广告位投放怎么建设网站商城
  • 前端做网站直播大型网站方案
  • 网站建设吉金手指专业12Wordpress4.0参考手册.CHM
  • 手机网站公司有限公司英文缩写
  • 地方网站自助建站诚信网站建设的意义
  • wordpress小米路由器3嘉兴优化公司
  • 荧光字网站3d做号网站
  • 哪个网站有适合小学生做的题目美食烹饪网站策划书
  • 做微商建自己的网站有用吗怎么更改织梦网站文章样式
  • 网站更新和维护怎么做和一起做网店类似的网站
  • iis7 asp网站 503励志网站源码
  • 新浪做网站网站用户体验评价方案
  • 化妆网站模板下载免费在百度上建网站
  • 免费永久网站注册安顺网站建设
  • 快手刷赞网站推广软件电子商务平台内的自然人经营者
  • 织梦模板怎么验证网站网站注册系统
  • 微信转账做网站收款分享几个x站好用的关键词
  • 广东省广州市佛山市优化大师是什么意思
  • 青海学会网站建设公司开网店要建网站 一起的吗
  • 网站建设用户画像例子建一个互联网平台需要多少钱
  • 我的网站在百度搜不到了微网站建设云帆网络
  • 网站建设的文案wordpress的api
  • 安阳企业网站优化外包网站静态代码检查 站长工具
  • 网站设计公司 无锡做网站要学会那些
  • 网站建设基本知识wordpress制作模板