- 博客(58)
- 资源 (13)
- 收藏
- 关注
原创 SpringDataJPA系列(7)Jackson注解在实体中应用
Springboot中默认集成的是Jackson,我们可以在jackson依赖包下看到Jackson有多个注解。1处:指定序列化时候的顺序,先createDate然后是email。2处:将name进行序列化时改成my_name。3处:更新时间序列化时按照给出的格式要求。将一些数据缓存到redis或其它缓存中时。4处:不序列化sex,报文中并没有出现。将调用解耦,使用JMS消息序列化时。SpringMVC的请求参数转换。微服务之间调用报文的转换。5处:不序列化的字段。
2024-09-07 21:45:00
112
原创 SpringDataJPA系列(6)Entiry注解使用
Inheritance 的这种使用方式会逐渐被淘汰,因为这样的表的设计很复杂,本应该在业务层面做的事情(多态),而在 datasoure 的表级别做了。这里只提及一些最常见的,包括 @Entity、@Table、@Access、@Id、@GeneratedValue、@Enumerated、@Basic、@Column、@Transient、@Lob、@Temporal 等。在使用的时候,Embedded 用的是对象,而 IdClass 用的是具体的某一个字段,二者的JPQL 也会不一样。
2024-09-05 21:45:00
763
原创 SpringDataJPA系列(5)@Query应该怎么用?
能用方法名表示的,尽量用方法名表示,因为这样语义清晰、简单快速,基本上只要编译通过,一定不会有问题能用 @Query 里面的 JPQL 表示的,就用 JPQL,这样与 SQL 无关,万一哪天换数据库了,基本上代码不用改变最后实在没有办法了,可以选择 nativeQuery 写原始 SQL,特别是一开始从 MyBatis 转过来的同学,选择写 SQL 会更容易一些。
2024-09-03 21:30:00
944
原创 SpringDataJPA系列(4)Repository 中的方法返回值使用
然后定义单独的查询方法下面是测试结果代码:这里需要注意的是,如果我们去看源码的话,看关键的 PreferredConstructorDiscoverer 类时会发现,UserDTO 里面只能有一个全参数构造方法。所以这种方式的优点就是返回的结果不需要是个实体对象,对 DB 不能进行除了查询之外的任何操作。缺点就是因为DTO要实现转化必须要有set方法,一旦有 set 方法就可以改变里面的值,构造方法不能更改,必须全参数,这样如果是不熟悉 JPA 的新人操作的时候很容易引发 Bug。
2024-09-02 14:08:14
1127
原创 SpringDataJPA系统(3)Defining Query Methods的命名语法与参数
若想要实现 CRUD 的操作,常规做法是写一大堆 SQL 语句。但在 JPA 里面,只需要继承 Spring Data Common 里面的任意 Repository 接口或者子接口,然后直接通过方法名就可以实现,神不神奇?比如我们要增加一个根据Email地址来查询用户,可以在接口中这么写:然后你不用写具体的实现就可以直接使用该方法来达到根据邮箱地址查询用户的目的了,测试下该方法,完全没问题DQM的命名规范值得我们去借鉴,在我们开发的给一些方法取名字的时候可以按照这个规范去执行,有利于提升方法的表意性。
2024-08-27 13:39:51
899
原创 SpringDataJPA系列(2)Commons核心Repository
在接触了 Repository 的源码之后,我们在工作中遇到过一些类似需要抽象接口和写动态代理的情况,可以从Repository 的源码中获得这些启发:上面的 7 个大 Repository 接口,我们在使用的时候可以根据实际场景,来继承不同的接口,从而选择暴露不同的 Spring Data Common 给我们提供的已有接口。这其实利用了 Java 语言的 interface 特性,在这里可以好好理解一下 interface 的妙用。
2024-06-30 11:00:00
602
原创 SpringDataJPA系列(1)JPA概述
SpringDataJPA似乎越来越流行了,我厂的mysql数据库和MongoDB数据库持久层都依赖了SpringDataJPA。为了更好的使用它,我们内部还对MongoDB的做了进一步的抽象和封装。为了查漏补缺,温故而知新,整理下SpringDataJPA相关知识,Check下实践过程中哪些地方还存在哪些不足,从而进一步的优化之。
2024-06-29 21:43:30
792
原创 少有人看见的美
都说一本好书能够刺激你的大脑分泌更多的多巴胺。而多巴胺能够给人带来愉悦,兴奋感觉,有人甚至说这种感觉堪比初恋。曾经有人提出这样的观点:人类到底是在用身体感悟这个世界,还是用大脑在感悟这个世界。但是我想不管如何,能够让你或你的大脑愉悦的东西,你都值得拥有。不要因为你是理工男你就觉得欣赏诗画对你来说就是对牛弹琴,你有没有想过其实可以用逻辑,用推理来欣赏它们,问题关键在于你愿不愿意。本书它会带你领略古老希腊神话,世界名画背后那些不为人知故事,带给你关于时间,生命,人生态度的思考。
2024-06-24 21:30:00
103
原创 读书笔记之智能商业
人类社会的发展,就是合作网络不断扩张的过程,它建立在技术和制度连个基础之上人类的整个历史进程,就是以更新的技术,在更大的群体范围内,共同寻找更优的解决方案,积累更大的文明成果人类经过1000多年的努力,终于在平等自由的基础上建立了所谓的现代文明体系,但是当技术让我们拥有了新的可能性时,国家、社会、民族、自由、宗教,所有这些我们习以为常的概念可能都将挑战我们想象的极限。未来究竟怎么样,谁也无法预知,我们唯一能做的就是把握好现在,紧紧跟随时代发展的脚步,永不停息。
2024-06-23 11:13:36
965
原创 师彼长技以助己(8)互利回路(下)
个性:无法复制的又有价值的。你的技术可能不是最好的,但是过得去的技术加上一个比较好的(沟通,管理,组织,演讲)能力,可能对你的领导或组织有着不可替代性的作用。工程思维和产品思维都讲完了,相信大家对有些思维的精髓还不太了解,没有关系,这些思维能力都不是一蹴而就能够习得的,我今天的任务是给大家种下这些思维的种子,至于种子能否长成参天大树,就看各位自己努力了,师父领进门修行在个人。当金色的曙光照在一只狮子身上时,狮子醒来了,它抖了抖身上的毛,望着太阳对自己说:“今天我要不停的跑,追上跑的最慢的羚羊,把他吃掉”。
2024-06-23 09:14:37
586
原创 师彼长技以助己(7)互利回路(上)
系统功能结构图,是指一个子系统中有哪些功能模块,这些功能模块一般都具有各自特点,映射到现实世界就像部门内部各个岗位,所以系统功能结构图展现的是岗位间是如何协作的,它是提供给部门管理层看的,你画出的图要保证的是如何清晰全面表现各岗位间协作关系,以及它的正确性。业务流程图,表示的具体某个岗位里某项工作的具体步骤,映射到现实世界也是一样的,既然是一个岗位内的工作步骤,当然是提供给业务人员阅读的,那你的图目的就是要把业务流程说明清楚且一定要正确。如果连通过我们的产品,用户能得到什么都不清楚,我们自己又能得到什么?
2024-06-16 10:00:00
585
原创 师彼长技以助己(6)递归思维
(一个bug蝴蝶效应可能过于夸张,但是直接导致公司利益受损,部门努力白费还是有的)一个bug导致火箭发射失败,飞机故障,损失的是他人的生命(历史上就发生过多起)想象下,让你写的航天系统,你自己敢坐上去吗?我们倒推,要先到20的话,谁先到17就赢,如此依次类推20 — 17— 14 —11— 8 — 5 — 2,最后是2,所以关键是2,如果你懂这个游戏规则,谁先到2谁就一定赢。目前流行的互联网技术也没有好坏之分,主要看使用它的人,但是有区别的是,我们大多数人掌握的技术不足以像核技术那么强大。
2024-06-15 16:05:57
774
原创 软件心学格物致知篇(7)软件开发文档写什么
当今约束大家生产力的有哪些因素?是编程语言?开发框架?开发IDE?还是自身迫切需要更高水平的技能?好像上面的每一项技术都在不断发展,也在不断的为我们生产了提高做贡献,其中还孕育出了几家很不错的公司。但是关于写文档这块好像这么多年从未有所大的变化,上一次关于文档话题的激烈争辩貌似还是雪鸟会议上提出的敏捷宣言。
2024-06-10 11:54:51
959
原创 师彼长技以助己(5)量级思维
围棋可能性约等于 2 * 10 ^172,比宇宙中粒子数要大太多,你想象一下每个基本粒子是一个单独的宇宙,每个宇宙也有这么多粒子,将它们全部加起来也比不上围棋的可能性,所以我们现代人比古人好不了多少,不要50步笑百步。很多人领导不把有挑战的活给自己,很可能是领导看过你之前干的活的质量,不敢委以重任,试想小事都做不好,怎么还敢把重要的事和大事交给你去做,即使给你,你也未必做的好,做不好的结果可能是你很难再有机会了。因为我们对数字的感觉主要受限于生活环境,你和王健林生活的环境不同,对数字大小感觉就不同了。
2024-06-09 11:22:14
1028
原创 师彼长技以助己(4)边界思维
就拿摩尔定律来说,它已经逐渐开始在晶体管大小层面失效,尺寸小于5纳米的晶体管载流子行为要用量子力学来解释,除非找到新材料,当然摩尔定律可能会在多CPU层面继续发挥一段时间作用,2G 3G 4G 5G 不要在错误的方向上努力,整个空间中带宽是有上限的;所以显然是不可能的,镜头的分辨率是有极限的,这个极限和自然光的波长有关,太近两束光会互相干涉,所以镜头很小的数码相机真达到这个分辨率,成像是不可能看清楚的。回到工作中,我们每个人能力都有边界的,所以需要大家一起协作,一起扩大能力边界,才能完成复杂的工程活动。
2024-06-09 11:12:50
289
原创 师彼长技以助己(3)逻辑思维
上一篇文章进行了工程思维和产品思维的测试,并介绍了几个比较重要的产品思维模型。接下来本篇介绍工程思维。(注意产品思维并不代表产品经理思维,工程思维也并不代表工程师思维,只是代表站在产品角度和角度来思考的一种思维模式)
2024-06-03 22:09:30
483
原创 师彼长技以助己(2)产品思维
我把产品思维称之为:人生底层的能力以及蹉跎别人还蹉跎自己的能力,前者说明你应该具备良好产品思维原因,后者是你没有好的产品思维去做产品带来的灾难。
2024-05-31 22:00:00
936
原创 学至乎没而后止也
学至后没而后止也这个题目的原话来自与荀子《劝学》。大家知道什么意思吗?学习要学到你人没了,才算停止了。通俗点说就是只要没学死就往死里学,高雅点说就是要保持终身学习。
2024-05-28 21:38:01
916
原创 测试驱动编程(4)模拟消除依赖
单元测试的要点就在于验证单个单元是否正常,而不考虑依赖,TDD中的单元测试尤其如此。对于内部依赖,我们应该已对其进行测试过;对于外部依赖(JDK包),我们应该信任它们。所以关键在于如何消除依赖。
2024-05-28 08:59:00
779
原创 噪声下篇(2) 如何做决策
这本《噪声》不但讲了一个系统性的新东西,而且讲出了一个绝对的高度,它的历史地位将会跟《快与慢》并列。这本书卡尼曼找了两个共同作者帮忙一起写,但是延续了他自己的风格。《噪声》的难度比《快与慢》还要高,它稍微用了一点点数学,要想精确理解,裴波那契难度系数大约是13。
2024-05-17 21:30:00
2574
原创 噪声上篇(1)-偏差与噪声
这本《噪声》不但讲了一个系统性的新东西,而且讲出了一个绝对的高度,它的历史地位将会跟《快与慢》并列。这本书卡尼曼找了两个共同作者帮忙一起写,但是延续了他自己的风格。
2024-05-16 20:15:00
776
原创 工程师工具箱系列(3)Arthas
Arthas本身是一个非常强大的运维类工具,Arthas插件给我们提供了许多的方便,替代了我们去记忆很长的脚本语法。
2024-05-13 21:45:00
1052
原创 工程师工具箱系列(2)hasor
Hasor 的扩展能力更像是一个乐高玩具的接口,任何人都可以通过非常简单的方式提供乐高积木,然后轻松的将它们融合到一起。在使用的过程中完全感受不到背后是多个不同的框架在协作。
2024-05-12 12:41:26
906
原创 工程师工具箱系列(1)MapStruct
在Java项目开发中,不管你是采用传统的MVC分层模式,还是DDD驱动的微服务模式,都免不了在各层级之间传递对象,在这个过程中会出现许多的对象概念性名词:VO,DTO,DO,Entity,ValueObj等等。我们先不管这些对象在你们各自项目里的作用,有一个共同的工作就是完成他们之间赋值转换。
2024-05-12 12:38:22
945
1
原创 底层逻辑(4)理解他人
想要和他人较好的协作,一方面我们要向外求:具备同理心,说服他人;另一方面我们要向内求:调控自己。这很像古代先哲所说的:内圣外王,对内要有掌控感,对外具备影响力。
2024-05-05 13:59:53
601
原创 底层逻辑(1) 是非对错
这本书的副标题叫做:看清这个世界的底牌。让我想起电影《教父》中的一句名言:花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。
2024-04-26 21:00:00
647
原创 Redis之路系列(3)纸上得来终觉浅(下)
本章节主要介绍了Rdis的一些主要应用场景,包含了:大数据的过滤,分布式锁设计,并讲解了有趣的布隆过滤器原理,HyperLogLog 原理,二进制位数与存储大小计算的常识
2024-04-16 13:42:15
889
原创 Redis之路系列(2)纸上得来终觉浅(上)
本章节介绍了redis的实际应用,主要包含:大量键值对保存的案例场景,海量key时的聚合计算、排序计算、状态统计、基础统计的应用
2024-04-16 13:38:57
809
hudson自动化部署配置
2015-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人