entity

c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Asyn...

≡放荡痞女 提交于 2020-10-10 00:27:59
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/tokens/verbatim 1、在变量名前加@,可以告诉编译器,@后的就是变量名。主要用于变量名和C#关键字重复时使用。 string[] @for = { "John", "James", "Joan", "Jamie" }; for (int ctr = 0; ctr < @for.Length; ctr++) { Console.WriteLine($"Here is your gift, {@for[ctr]}!"); } // The example displays the following output: // Here is your gift, John! // Here is your gift, James! // Here is your gift, Joan! // Here is your gift, Jamie! 2、在字符串前加@,字符串中的转义字符串将不再转义。例外:""仍将转义为",{{和}}仍将转义为{和}。在同时使用字符串内插和逐字字符串时,$要在@的前面 string filename1 = @"c:\documents\files\u0066

我又踩坑了!如何为HttpClient请求设置Content-Type标头?

a 夏天 提交于 2020-10-09 18:52:08
最近在重构认证代码,认证过程相当常规: POST /open-api/v1/user-info?client_id&timstamp&rd=12345&sign=***&method=hmac content-type: application/json payload: { "token":"AA2917B0-C23D-40AB-A43A-4C4B61CC7C74"} 平台显示 :签名校验失败, 排查到平台收到的Post Payload并非预期,阅读本文,解锁正确使用Content-Type标头的姿势。 1. 入坑 下面是构造HttpClient对象、发起请求的代码: // 初始化HttpClientFactory context.Services.AddHttpClient("platform", c => { c.BaseAddress = new Uri("https://alpha-engage.demohost.com/"); c.DefaultRequestHeaders.Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); })... // 产生命名HttpClient,发起请求 var client = _clientFactory.CreateClient("platform"

java permgen内存泄漏问题处理

回眸只為那壹抹淺笑 提交于 2020-10-09 04:17:25
来自:http://longtask.com/review/2014/06/07/java-permgen-outofmemory/ 工作以来,第三次出现内存溢出,第一次是ThreadLocal没有remove造成的问题;第二次是ExecutorService没有正确的shutdown造成的问题;这一次的问题在我出手排查之前,已经知道了是permgen在不断的增长,在permgen中主要有Class和Meta信息,常量。 在开始阶段:排除了ThreadLocal可能导致的问题;排除了Thread可能导致的问题;后面就需要从新的突破点找问题了。 1:基本设置的排查 查找日志中访问量较大的请求的URL: awk '{print $6}' service-digest.* |awk -F"," '{print $1 ",""1"}'|awk -F"," '{a[$1]+=$2;b[$1]++}END{for(n in a)print a[n] " " n }'|sort -n 查找日志中的调用很多的内容;依然没有发现问题;采用webbench一个个的调用请求来模拟操作,前十名的URL没有发现问题,后面的就没有查看了。 通过线下操作,发现也不是开始怀疑的RMI远程调用的问题; 针对CMS-GC,网上建议开通 -XX:+CMSClassUnloadingEnabled -XX:

RestFul的一些注意事项和接口开发规范

风格不统一 提交于 2020-10-09 00:22:25
一、 URI URI规范 1.不用大写; 2.用中杠 - 不用下杠 _ ; 3.参数列表要encode; 4.URI中的名词表示资源集合,使用复数形式。 5.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词(特殊情况可以使用动词),而且所用的名词往往与数据库的表格名对应。 资源集合 vs单个资源 URI表示资源的两种方式:资源集合、单个资源。 资源集合: /zoos //所有动物园 /zoos/1/animals //id为1的动物园中的所有动物 单个资源: /zoos/1//id为1的动物园 /zoos/1;2;3//id为1,2,3的动物园 避免层级过深的URI 在url中表达层级,用于 按实体关联关系进行对象导航 ,一般根据id导航。 过深的导航容易导致url膨胀,不易维护,如 GET /zoos/1/areas/3/animals/4 ,尽量使用查询参数代替路径中的实体导航,如 GET/animals?zoo=1&area=3 ; 二、 版本 应该将API的版本号放入到URI中 https://api.example.com/v1/zoos 三、 Request HTTP方法 通过标准HTTP方法对资源CRUD: GET:查询(从服务器取出资源一项或多项) GET /zoos GET /zoos/1 GET/zoos/1

OData的初步认识及使用

99封情书 提交于 2020-10-07 05:11:45
OData是什么   Open Data Protocol(OData),程序数据库格式标准化的开放数据协议,以简单和标准的方法,建造或消除可查询和可操作的RESTful API,是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式。 OData产生契机   已知REST只是一种设计Web服务的思想,不是一种标准化的协议,因此会导致各家公布的RESTful API在统一通用方面的欠缺。OData就是为了弥补这种欠缺而被提出来的标准协议。 实施OData 如果需要实施OData服务,需要完成以下四个部分: OData模型 定义数据结构,一般发生在后端系统。 OData协议 支持CRUDQ(创建,读取,修改,删除,查询)功能,数据的传输可以使用XML或者JSON。 OData客户端库 保证了客户端能够使用库函数方便的访问OData服务。注意,客户端库并不是必须的,但是尽量有,这样可以节省大量的编码工作。 OData服务 可以最终被客户端访问的服务。 OData服务的结构 服务文档(Service Document) 服务元结构文档(Service Metadata Document) 以上两种文档包含了: 实体(Entity) 实体类型(Entity Type) 实体集合(Entity Set) 属性(Property) 导航属性(Navigation

最新进展概述:澄清式提问辅助理解信息检索中的用户意图

≡放荡痞女 提交于 2020-10-06 10:07:48
©PaperWeekly 原创 · 作者|金金 单位|阿里巴巴研究实习生 研究方向|推荐系统 用户使用搜索引擎的过程中,通常很难用单一的查询表达复杂的信息需求。在真实应用的过程中,用户需要根据当前搜索引擎的展示结果反复修改查询词。这一过程极大地增加了用户搜索的负担,影响了用户的搜索体验。 近期,澄清式提问(Asking Clarifying Questions)的提出为该问题的解决提供了新的思路。该方法根据用户给出的查询提出相关问题,从而更好地理解用户意图,展示更符合用户需求的排序结果,提高用户对搜索过程的满意度。本文将概述该方向的一些最新研究进展。 从任务提出到简单实现 论文标题: Asking Clarifying Questions in Open-Domain Information-Seeking Conversations 论文来源: SIGIR 2019 论文链接: https://arxiv.org/abs/1907.06554 本文发表于 SIGIR 2019,该论文首先提出了“通过澄清式提问理解信息检索中的用户意图”的任务;然后针对已有的查询,根据搜索引擎的查询词建议或已知的不同用户意图,人工构造澄清式问题和答案;在此基础上提出了根据查询和历史问答记录检索并选择当前问题的深度学习模型 BERT-LeaQuR 和 NeuQS。 1.1 任务流程

云原生quarkus框架项目实践

烂漫一生 提交于 2020-10-06 00:36:04
写在前面, 不知不觉上篇文章已经是好几年前了, 回到博客园倍感亲切. 总想写点什么, 发现博客园里关于quarkus的文章不多, 故把自己在项目过程中的点滴整理如下, 希望对您有所帮助. 一、quarkus 是什么?为什么要用quarkus quarkus是Redhat开源的云原生微服务框架, 相比较成熟的SpringCloud, 为什么要用quarkus? 主要有以下几点原因: Spring系列框架臃肿、复杂, 更像是一个全家桶. 而quarkus 简单、高效, 工具先进 启动速度, quarkus可以在5秒内启动, 而spring对于一个golang开发者来说, 这个速度直接无法忍受. quarkus可以热编译, 无需手动编译和重启服务, 而Spring的热编译.. 与其他工具集成, Spring集成了大部分的工具, 但你把DI换成guice试试, quarkus可以很方便的集成工具, 虽然框架本身包含的东西不多 quarkus不依赖tomcat或jetty, 可以编译为原生应用, 性能大幅提高 quarkus耦合低, 项目结构干净, 适合使用代码生成器. 二、创建一个quarkus项目 您可以使用maven或gradle来快速创建一个quarkus项目, 具体方法见quarkus网站, quarkus 只需要创建一个Resource类, 就可以启动服务. 零配置. 另外

DDD--领域驱动设计第一次亲密接触笔记

走远了吗. 提交于 2020-10-05 17:50:56
文章目录 概念 模型 分层 领域驱动设计:软件核心复杂性应对之道 概念 在MVC的编码过程中,我们关心的数据流的流动,更像是一种面向过程的实现。各个组件依托于Spring的单例进行方法调用。而且MVC的entity多是用lombok处理后的贫血模型。贫血模型将模型和操作进行分离,破坏了对象的封装性。 那么来谈谈DDD(领域驱动设计)主要是用来指导如何解耦业务系统,划分业务模块,定义业务领域模型及其交互。领域驱动设计这个概念并不新颖,早在 2004 年就被提出了,到现在已经有十几年的历史了。不过,它被大众熟知,还是基于另一个概念的兴起,那就是微服务。DDD与mvc最大的区别在于Service层。 DDD 开发模式中,Service 层包含 Service 类和 Domain 类两部分。Domain 就相当于贫血模型中的 BO。不过,Domain 与 BO 的区别在于它是基于充血模型开发的,既包 含数据,也包含业务逻辑。而 Service 类变得非常单薄。 充血模型(Rich Domain Model) 正好相反,数据和对应的业务逻辑被封装到同一个类中。因此,这种充血模型满足面向对象的封装特性,是典型的面向对象编程风格。 既然充血模型把很多操作都通过操作封装完成了,那么service的作用是什么? 与dao交流,获取数据库数据,转化为领域模型。完成业务逻辑存回数据库

Cesium项目实战(5)-城市各类POI数据制作、加工、展示

喜欢而已 提交于 2020-10-05 06:15:31
百度百科关于POI是这样解释的。POI是"Point of Interest"的缩写,中文可以翻译为"兴趣点"。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。每个POI包含四方面信息,名称、类别、坐标、分类,全面的POI讯息是丰富导航地图的必备资讯,及时的POI兴趣点能提醒用户路况的分支及周边建筑的详尽信息,也能方便导航中查到你所需要的各个地方,选择最为便捷和通畅的道路来进行路径规划,因此,无论是车载导航还是手机导航,导航地图POI多少状况直接影响到导航的好用程度,导航地图中POI信息点的多少以及信息的准确程度和信息更新速度,都严重影响到一款导航的使用情况。 我们可以理解为POI在任何一个GIS系统中,都占据了非常重要的地位。因此,如何收集POI信息,以及如何在三维场景中显示这些POI信息也是非常重要的。很幸运的是,我们获取到了一份北京市较全的POI数据,大概15万条记录,本篇文章就这个数据着重介绍一下,如何加载POI信息。 笔者获取到的数据为SHP格式,classify为分类属性,本文中,提炼了4s店、餐饮、地铁站、汽车站、超市5个种类,作为示例。 在本篇“城市各类POI数据制作、加工、展示”中我们主要包括如下几个可视化内容。 普通直接加载 默认启用汇聚加载 自定义汇聚加载 1. 普通直接加载 普通直接加载,主要是针对于POI数量比较少的情况下

SpringBoot多模块项目(Gradle篇)

坚强是说给别人听的谎言 提交于 2020-10-04 22:26:58
Gradle Kotlin DSL 项目链接: https://gitee.com/ellipse/springboot-multi-parent 1、创建项目 1.1、创建根项目 (parent) 1、使用 Spring Initializr 创建一个项目 2、删除 src 3、修改 build.gradle.kts 文件,将以下内容移到 subprojects 里面: java.sourceCompatibility dependencies tasks 简单来说就是把除 plugins group version repositories 之外的东西都移到 subprojects 里面 4、将以下内容放在 subprojects 最前面 subprojects { apply(plugin = "java") apply(plugin = "kotlin") // 可选 apply(plugin = "org.springframework.boot") apply(plugin = "io.spring.dependency-management") ...... } 5、springboot插件后添加 apply false plugins { id("org.springframework.boot") version "2.2.7.RELEASE" apply