Lombok

JAVA奇技淫巧简化代码之lombok

自作多情 提交于 2020-11-01 00:27:23
背景 最近在做一个小功能,又不想在原有体态臃肿的项目中追加,为了调试方便并且可以快速开发就采用了springboot。由于使用了JPA,建了几个类,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,那么Java中有没有一种方式能够避免这种重复的劳动呢?答案是有,想着前几天听说有一款简化神奇Lombok,特此拿来玩玩记录一下。 简介 Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。 官方地址: https://projectlombok.org/ github地址: https://github.com/rzwitserloot/lombok Lombok注解 下面对Lombok的简单使用方法做一下总结: @NotNull 作用在方法参数上的注解,用于自动生成空值参数检查。 @Cleanup 作用在局部变量上,在作用域结束时会自动调用close方法释放资源。 @Getter 作用在字段上,会自动生成字段的Getter;作用在类上,会自动生成该类所有非静态字段的Getter,还能控制Getter的访问级别 @Setter 基本同上。 @ToString 类注解,自动生成类的toString方法,可以做一些定制

Cloud-Admin首个基于Spring Cloud微服务化开发平台源码分享

此生再无相见时 提交于 2020-10-30 07:45:48
Cloud-Admin是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Spring Boot2以及Spring Cloud Gateway相关核心组件,前端采用vue-element-admin组件。 模块说明 监控 利用Spring Boot Admin 来监控各个独立Service的运行状态;利用Hystrix Dashboard来实时查看接口的运行状态和调用频率等。 负载均衡 将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。 服务注册与调用 基于Eureka来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。 熔断机制 因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix的作为熔断器

netty实战之微信登录群聊6-客户端互聊实现

孤街浪徒 提交于 2020-10-27 03:27:24
客户端服务端互相聊天,就是把所有登录用户的channel记录下来,当用户向另一个用户发消息时,找到另一个用户对应的channel把消息推给他 以下为原代码 package com.juejing.im.attribute; import com.juejing.im.Session.Session; import io.netty.util.AttributeKey; public interface Attributes { AttributeKey<Boolean> LOGIN = AttributeKey.newInstance("login"); AttributeKey<Session> SESSION = AttributeKey.newInstance("session"); } package com.juejing.im.client.handle; import com.juejing.im.Session.Session; import com.juejing.im.protocol.request.LoginRequestPacket; import com.juejing.im.protocol.response.LoginResponsePacket; import com.juejing.im.util.LoginUtil; import com

Springboot 整合 flowable modeler 免登录 查询用户 用户组

断了今生、忘了曾经 提交于 2020-10-26 05:13:01
之前画流程图都是用tomcat启动flowable modeler,但是这样启动就不能在分配任务用户/用户组的时候查询自己系统里的数据。所以现在需要把flowable modeler集成到项目里来。 之前自己也搜索了很多文章,都感觉不是很清晰,可能也是因为我刚接触不久。现在自己集成好了之后,记录一下自己学习的结果。 首先需要创建一个springboot应用,pom文件中引入相关jar包: <properties> <java.version>1.8</java.version> <flowable.version>6.4.1</flowable.version> <lombok.version>1.18.0</lombok.version> <fastjson.version>1.2.9</fastjson.version> </properties> < dependencyManagement > < dependencies > < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-dependencies </ artifactId > < type > pom </ type > < scope > import </ scope > </

Spring 常犯的十大错误,打死都不要犯!

半世苍凉 提交于 2020-10-25 05:44:59
原文: https://www.toptal.com/spring/top-10-most-common-spring-framework-mistakes 作者:Toni Kukurin,译者:万想 译文:www.cnblogs.com/liululee/p/11235999.html 1. 错误一:太过关注底层 我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见。症状包括经常重写一些常见的代码,很多开发人员都有这种症状。 虽然理解特定库的内部结构及其实现,在很大程度上是好的并且很有必要的(也可以是一个很好的学习过程),但作为软件工程师,不断地处理相同的底层实现细节对个人的开发生涯是有害的。 像 Spring 这种抽象框架的存在是有原因的,它将你从重复地手工劳作中解放出来,并允许你专注于更高层次的细节 —— 领域对象和业务逻辑。 因此,接受抽象。下次面对特定问题时,首先进行快速搜索,确定解决该问题的库是否已被集成到 Spring 中;现在,你可能找到一个合适的现成解决方案。 比如,一个很有用的库,在本文的其他部分,我将在示例中使用 Project Lombok 注解。Lombok 被用作样板代码生成器,希望懒惰的开发人员在熟悉这个库时不会遇到问题。举个例子,看看使用 Lombok 的 “标准 Java Bean” 是什么样子的: 如你所想

PBFT算法java实现(上)

百般思念 提交于 2020-10-23 02:46:21
PBFT 算法的java实现(上) 在这篇博客中,我会通过Java 去实现PBFT中结点的加入,以及认证。其中使用socket实现网络信息传输。 关于PBFT算法的一些介绍,大家可以去看一看网上的博客,也可以参考我的上上一篇 博客 ,关于怎么构建P2P网络可以参考我的上一篇 博客 。 该项目的地址: GitHub 使用前的准备 使用maven构建项目,当然,也可以不使用,这个就看自己的想法吧。 需要使用到的Java包: t-io:使用t-io进行网络socket通信,emm,这个框架的文档需要收费(699RMB),但是这里我们只是简单的使用,不需要使用到其中很复杂的功能。 fastjson:Json 数据解析 lombok:快速的get,set以及toString hutool:万一要用到呢? lombok:节省代码 log4j:日志 guava:Google的一些并发包 结点的数据结构 首先的首先,我们需要来定义一下结点的数据结构。 首先是结点Node的数据结构: @Data public class Node extends NodeBasicInfo { /** * 单例设计模式 * @return */ public static Node getInstance () { return node; } private Node () {} private static