namespace

xml命名空间

痴心易碎 提交于 2019-12-21 09:20:06
https://yq.aliyun.com/articles/40353 ************************************* 摘要: 相信很多人和我一样,在编写Spring或者Maven或者其他需要用到XML文档的程序时,通常都是将这些XML文档头拷贝过来,并没有理解其中元素 (比如xmlns,xmlns:xsi,xsi:schemaLocation)的真正含义,不知道哪些元素是多余的,也不知道为什么要加那些元素。这样 当有时候网... 相 信很多人和我一样,在编写Spring或者Maven或者其他需要用到XML文档的程序时,通常都是将这些XML文档头拷贝过来,并没有理解其中元素(比 如xmlns,xmlns:xsi,xsi:schemaLocation)的真正含义,不知道哪些元素是多余的,也不知道为什么要加那些元素。这样当有 时候网上Copy的XML头有错的时候自己却不知道怎么下手。我也是这样的,于是今天花了点时间好好的理解了一下这些元素及其用法,现整理与此,在此谢谢 各位前辈的经验,如有总结的不对或者不好的地方,欢迎留言提出各位的宝贵意见。 话不多说,先来一段Spring的XML样本,相信大家都很眼熟: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <? xml version

TS02 TypeScript基础

我怕爱的太早我们不能终老 提交于 2019-12-21 02:04:07
安装 全局安装TypeScript命令行工具 npm install -g typescript 安装后就可以在全局使用 tsc 命令,来编译TypeScript文件: tsc hello.ts TypeScript编写的文件后缀名是 .ts ,用TypeScript编写React应用时文件后缀名是 .tsx Hello TypeScript function sayHello(person: string) { return `hello, ${person}` } const user = 'Tom'; console.log(sayHello(user)); 在TS中,使用 : 指定变量的类型,编译后的代码: function sayHello(person) { return "hello, " + person; } var user = 'Tom'; console.log(sayHello(user)); TypeScript会对代码进行静态检查,如果传入的参数和我们指定的类型不匹配,IDE就可以给出即时的提示,并且在编译阶段会报错(但是并不会阻止编译的过程) 例如我们将上面的 user 的值改为数值 123 ,那么在IDE中会提示: 编译时也报错: src/hello.ts:5:22 - error TS2345: Argument of type '123' is

PCL可视化点云【颜色特征】

寵の児 提交于 2019-12-21 01:54:31
以颜色 区别深度 为了更加直观的显示点云,将不同的深度值显示为不同的颜色。 #include <iostream> #include <pcl/point_types.h> #include <pcl/io/ply_io.h> #include <pcl/visualization/pcl_visualizer.h> #include <pcl/io/io.h> using namespace std; using namespace pcl; using namespace io; int main() { PointCloud<PointXYZ>::Ptr cloud(new PointCloud<PointXYZ>); if (io::loadPLYFile("bunny.ply", *cloud) == -1) { // 读取.ply文件 cerr << "can't read file bunny.pcd" << endl; return -1; } boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer")); pcl::visualization:

traefik-Ingress边缘路由器落地到微服务

喜夏-厌秋 提交于 2019-12-20 08:26:40
1.理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器. 它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。 2.以下配置文件可以在kubernetes-handbookGitHub仓库中的../manifests/traefik-ingress/目录下找到。 2.1创建ingress-rbac.yaml 将用于service account验证。 apiVersion: v1 kind: ServiceAccount metadata: name: ingress namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: ingress subjects: - kind: ServiceAccount name: ingress namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io

命名空间的作用

て烟熏妆下的殇ゞ 提交于 2019-12-20 02:44:10
来源:https://blog.csdn.net/LF_2016/article/details/51930792 一、为什么使用命名空间 一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数,这样在程序中就会出现名字冲突。不仅如此,有可能我们自己定义的名字会与C++库中的名字发生冲突。 名字冲突就是在同一个作用域中有两个或多个同名的实体,为了解决命名冲突 ,C++中引入了命名空间,所谓命名空间就是一个可以由用户自己定义的作用域,在不同的作用域中可以定义相同名字的变量,互不干扰,系统能够区分它们。 二、什么是命名空间 命名空间是程序设计者命名的内存区域,程序设计者根据需指定一些有名字的空间域,把一些全局实体分别存放到各个命名空间中,从而与其他全局实体分隔开。 通俗的说,每个名字空间都是一个名字空间域,存放在名字空间域中的全局实体只在本空间域内有效。名字空间对全局实体加以域的限制,从而合理的解决命名冲突。 例: namespace na { int a; char c; } 则 a和c只在na的作用域内有效。 在声明一个命名空间时,花括弧内不仅可以包含变量,而且还可以包含以下类型: 变量(可以带有初始化) 常量 函数(可以是定义或声明) 结构体 类

T4模版引擎之基础入门

[亡魂溺海] 提交于 2019-12-20 01:04:20
  额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看,可怜的娃啊。。。   T4( Text Template Transformation Toolkit )是微软官方在VisualStudio 2008中开始使用的代码生成引擎。在 Visual Studio 中,“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件。 在 Visual C# 或 Visual Basic 中,控制逻辑编写为程序代码的片段。生成的文件可以是任何类型的文本,例如网页、资源文件或任何语言的程序源代码。现在的VS中只要与代码生成相关的场景基本上都能找T4的身影,比如MVC的视图模板,Entity Framwork的DataContext模板等等。   在学习枯燥的概念前我们先来看一下用T4模版快速生成POCO实体类的示例 打开VS2010建一个项目,然后右击项目文件选择新建项,在文件列表中找到文件模版,如图所示 修改TextTemplate1.tt文件内容如下 <#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> using

析构函数何时被调用

旧巷老猫 提交于 2019-12-19 07:47:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 析构函数何时被调用 析构函数在下边3种情况时被调用: 对象生命周期结束,被销毁时; 主动调用delete ; 对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。 第一种情况 #include <iostream> using namespace std; class A { public: A() { cout << "constructing A" << endl; } ~A() { cout << "destructing A" << endl; } private: int a; }; void main() { A a; } 运行结果: constructing A destructing A 1 2 第二种情况 如果是new的对象,即使离开了作用域也会一直存在,必须主动delete,否则只有在结束程序时才会执行析构。这里在说下内存泄漏,举个例子 #include <iostream> using namespace std; class A { public: A() { cout << "constructing A" << endl; } ~A() { cout << "destructing A" << endl; } private: int a; }; void fun(

2.LXC和namespace介绍

℡╲_俬逩灬. 提交于 2019-12-19 06:25:11
lxc介绍 LXC又名Linux container,是一种虚拟化的解决方案,这种是内核级的虚拟化。(主流的解决方案Xen ,KVM, LXC) Linux Container容器是一种 内核虚拟化技术 ,可以提供轻量级的虚拟化,以便隔离进程和资源。可以最大效率隔离进程和资源。它可以把传统虚拟技术以及后来的Xen、KVM的VM进程像HOST进程一样运行管理, 所以创建和销毁都非常轻。 如果说LXC着眼点在于提供轻量级的虚拟技术,扎根在虚拟机,那Docker则定位于应用。 概述 LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于: (1)与宿 主机 使用同一个 内核 ,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地 运行指令 ,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。

springboot 配置二级缓存

房东的猫 提交于 2019-12-18 20:48:13
springBoot中配置mybatis的二级缓存 2018年01月22日 11:45:37 Ting.Xue(Martin.Xue) 阅读数:5604 更多 个人分类: SSM的Spring框架 Mybatis 在结合springBoot和mybatis的时候想用二级缓存怎么办,请耐心看完。 什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能。 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。使用关联信息时再去加载关联信息。 设置延迟加载 需要在SqlMapConfig.xml 文件中,在<settings> 标签中设置下延迟加载。 lazyLoadingEnabled、aggressiveLazyLoading 设置项 描述 允许值 默认值 lazyLoadingEnabled 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载。 true | false false aggressiveLazyLoading 当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 true | false true 1 2 3 4 5 6 7 8 9 10 <!-- 开启延迟加载 --> < settings > <!-- lazyLoadingEnabled

kuangbin 带你飞 数学基础

不羁的心 提交于 2019-12-18 15:09:38
模版整理: 晒素数 void init() { cas = 0; for (int i = 0 ; i < MAXD ; i++) is_prime[i] = true; is_prime[0] = is_prime[1] = false; for (int i = 2 ; i < MAXD ; i++) { if (is_prime[i]) { prime[cas++] = i; for (int j = i + i ; j < MAXD ; j += i) is_prime[j] = false; } } } 合数分解 int x = src[i]; int cnt = 0,tot = 0; for (int j = 0 ; j < cas && prime[j] * prime[j] <= x ; j++) { if (x % prime[j] == 0) { res[cnt++] = prime[j]; while (x % prime[j] == 0) { tot++; x /= prime[j]; } } } if (x > 1) { res[cnt++] = x; tot++; } 大素数筛。1-2^31内某个长度小于10W的区间的素数个数 #include <map> #include <set> #include <list> #include <cmath>