entity

Spring Data套装基础之MongoDB

拈花ヽ惹草 提交于 2020-12-26 11:31:53
1. 简介 Spring Data MongoDB属于Spring Data套装中的一个工具,提供了对MongoDB数据库操作的封装。 相对于直接使用MongoDB的驱动,Spring Data MongoDB可能更有优势,不管是简单还是复杂的操作。 对于简单的操作Spring Data MongoDB甚至基本都不用写什么代码。 对于复杂的操作Spring Data MongoDB在抽象层做得更好,更方便维护。 2. 实体类 import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; import java.util.List; @Document(collection = "student") public class Student { @Id private String id; private String name; private Integer age; @DBRef private List<Teacher> teachers; public String getId() { return

领域驱动设计,让程序员心中有码(五)

怎甘沉沦 提交于 2020-12-26 07:26:46
1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联,有时候会让软件工程设计变得更加复杂。因此,在设计关联关系时,应该让关联更加易于控制,这意味着需要采取下列三种措施:   1

领域驱动设计,让程序员心中有码(五)

爷,独闯天下 提交于 2020-12-26 06:02:31
题图 From unsplash 本系列是由溪源的《领域驱动设计》读书笔记梳理而成,已经是写到第五篇了,为溪源的坚持点赞。 1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联

PTMs| 2020最新NLP预训练模型综述

点点圈 提交于 2020-12-25 17:17:41
本篇文章主要介绍邱锡鹏老师在2020年发表的一篇预训练模型的综述: 「Pre-trained Models for Natural Language Processing: A survey」 [1] 。 该综述系统地介绍了nlp中的预训练模型。主要的贡献包括: 1.深入盘点了目前主流的预训练模型 ,如word2vec,ELMo,BERT等。 2. 提出了一种预训练模型的分类体系 ,通过四种分类维度来划分目前已有的预训练模型。包括: 表征的类型,即:是否上下文感知 编码器结构,如:LSTM、CNN、Transformer 预训练任务类型,如:语言模型LM,带掩码的语言模型MLM,排列语言模型PLM,对比学习等 针对特定场景的拓展和延伸。如:知识增强预训练,多语言预训练,多模态预训练和模型压缩等 3. 如何将PTMs学到的知识迁移到下游的任务中。 4. 收集了目前关于PTMs的学习资料。 5. 指明PTMs未来的研究方向 ,如:局限、挑战、建议。 由于篇幅原因,本文主要针对前面两点进行梳理,即 「目前主流的预训练模型」 和 「预训练模型的分类体系」 。 我们建立了 自然语言处理、机器学习等 讨论组,欢迎大家加入讨论。人数达到上限,添加下方好友手动邀请,注意一定要 备注 ,不然无法通过。 1. 背景 「nlp、cv领域的传统方法极度依赖于手动特征工程」 。例如nlp中的log

NLP 事件抽取综述(中)—— 模型篇

梦想与她 提交于 2020-12-25 16:34:53
NewBeeNLP公众号原创出品 公众号专栏作者 @lucy 北航博士在读 · 文本挖掘/事件抽取方向 前情提要 : 超全必读!事件抽取综述(上) 本系列文章主要分享近年来 事件抽取方法总结 ,包括中文事件抽取、开放域事件抽取、事件数据生成、跨语言事件抽取、小样本事件抽取、零样本事件抽取等。主要包括以下几大部分: 定义(Define) 综述(Survey) 模型(Models) 数据集(Datasets) 挑战与展望(Future Research Challenges) Github地址: https://github.com/xiaoqian19940510/Event-Extraction 全文数万字,分几篇整理,后续会同之前的 文本分类综述 一样整理成PDF分享给大家,欢迎持续关注!综述内涉及的所有事件抽取必读论文清单,我们已经提前为大家整理打包好啦,订阅号后台回复 『事件抽取』 即可获取喔~ 另外,最近建立了 『知识图谱』 方向讨论组,快来和大佬们一起精准交流吧,文末自取 事件抽取 2020 1、 Reading the Manual: Event Extraction as Definition Comprehension, EMNLP 2020 [1] 动机 提出一种新颖的事件抽取方法,为模型提供带有漂白语句(实体用通用的方式指代)的模型。漂白语句是指基于注释准则

分手失败,那就聊聊前后端分离接口规范~

ⅰ亾dé卋堺 提交于 2020-12-24 15:57:16
点击上方 “ IT平头哥联盟 ”, 选择“ 置顶或者星标 ” 一起进步~ 1. 前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高。 后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然而带来的另一个问题:前后端的对接界面双方却关注甚少,没有任何接口约定规范情况下各自干各自的,导致我们在产品项目开发过程中,前后端的接口联调对接工作量占比在30%-50%左右,甚至会更高。 往往前后端接口联调对接及系统间的联调对接都是整个产品项目研发的软肋。 本文的主要初衷就是规范约定先行,尽量避免沟通联调产生的不必要的问题,让大家身心愉快地专注于各自擅长的领域。 昨天要分手的文章 : 前端:后端,我们要分手,咱两不合适 2. 为何要分离 参考两篇文章: http://blog.jobbole.com/65509/ http://blog.jobbole.com/56161/ 目前现有前后端开发模式:“后端为主的MVC时代”,如下图所示: 后端为主的MVC时代 代码可维护性得到明显好转,MVC 是个非常好的协作模式,从架构层面让开发者懂得什么代码应该写在什么地方。 为了让 View 层更简单干脆,还可以选择 Velocity、Freemaker 等模板,使得模板里写不了 Java 代码。

SpringBoot2 整合OAuth2组件,模拟第三方授权访问

不想你离开。 提交于 2020-12-22 10:02:38
本文源码: GitHub·点这里 || GitEE·点这里 一、模式描述 授权服务 验证第三方服务的身份,验证邮箱用户的身份,记录和管理认证Token,为资源服务器提供Token校验。场景:第三方网站借助用户的邮箱登录,并访问邮箱账户的基础信息,头像、名称等。 资源服务 第三方服务通过邮箱账户登录后需要获取的一些信息,即理解为资源,存储邮箱账户的数据资源。 第三方服务 即借助邮箱用户的账户,快速登录第三个服务,免去繁杂的注册流程,有助于快速积累新用户。 交互流程 第三方服务给用户开放快速邮箱登录功能,引导用户调到邮箱认证服务,通过认证后返回身份令牌到第三方服务,第三方服务携带令牌访问邮箱的资源服务,获取一些基本的邮箱用户信息。 二、项目配置管理 1、案例结构 核心依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> <version>2.1.3.RELEASE<

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

自闭症网瘾萝莉.ら 提交于 2020-12-22 04:23:08
❝ 分享、成长,拒绝浅藏辄止。关注公众号【 BAT的乌托邦 】,回复关键字 专栏 有Spring技术栈、中间件等小而美的 原创专栏 供以免费学习。本文已被 https://www.yourbatman.cn 收录。 ❞ ✍前言 你好,我是YourBatman。 上篇文章 大篇幅把Spring全新一代类型转换器介绍完了,已经至少能够考个及格分。在介绍Spring众多内建的转换器里,我故意留下一个尾巴,放在本文专门撰文讲解。 为了让自己能在“拥挤的人潮中”显得不(更)一(突)样(出),A哥特意准备了这几个特殊的转换器助你破局,穿越拥挤的人潮,踏上Spring已为你制作好的高级赛道。 版本约定 Spring Framework:5.3.1 Spring Boot:2.4.0 ✍正文 本文的焦点将集中在上文留下的4个类型转换器上。 StreamConverter:将Stream流与集合/数组之间的转换,必要时转换元素类型 这三个比较特殊,属于“最后的”“兜底类”类型转换器: ObjectToObjectConverter:通用的将原对象转换为目标对象(通过工厂方法or构造器) IdToEntityConverter : 本文重点 。给个ID自动帮你兑换成一个Entity对象 FallbackObjectToStringConverter:将任何对象调用 toString()

restful规范和restframework框架

时间秒杀一切 提交于 2020-12-19 15:35:37
什么是接口? 接口可以理解为url就是接口. 那么在其他语言里面接口也可以是约束类 restful规范是什么? RESTful是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 URL: 1.url体现版本 2.url体现是API 3.用HTTPS 4.条件 5.面向资源编程 6.根据method的不用进行不同的操作 7.响应时添加状态码 常见的状态码 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。 201 CREATED - [POST/PUT/ PATCH]:用户新建或修改数据成功。 202 Accepted - [* ]:表示一个请求已经进入后台排队(异步任务) 204 NO CONTENT - [DELETE]:用户删除数据成功。 400 INVALID REQUEST - [POST/PUT/ PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。 401 Unauthorized - [* ]:表示用户没有权限(令牌、用户名、密码错误)。 403 Forbidden - [* ] 表示用户得到授权(与401错误相对),但是访问是被禁止的。 404 NOT FOUND - [* ]:用户发出的请求针对的是不存在的记录

httpclient工具类,post请求发送json字符串参数,中文乱码处理

倾然丶 夕夏残阳落幕 提交于 2020-12-19 06:43:25
在使用httpclient发送post请求的时候,接收端中文乱码问题解决。 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的。可是在使用httpclient发送post请求报文含中文的时候在发送端数据正常但是到了服务器端就中文乱码了。 解决办法: 发送端进行设置编码如下: 工具类: 1 package com.Util; 2 3 import com.google.common.base.Charsets; 4 import org.apache.http.HttpEntity; 5 import org.apache.http.client.methods.CloseableHttpResponse; 6 import org.apache.http.client.methods.HttpPost; 7 import org.apache.http.entity.StringEntity; 8 import org.apache.http.impl.client.CloseableHttpClient; 9 import org.apache.http.impl.client.HttpClients; 10 import org.apache.http.util.EntityUtils; 11 12 public class HttpUtil { 13