- 博客(15)
- 收藏
- 关注
原创 通过@InitBinder注解实现参数绑定
@InitBinder简介@InitBinder注解是controller级别的,一个controller实例中的所有@initBinder 只对该controller有效。@InitBinder标注的方法, 方法的参数可以有HttpServletRequest、ModelMap、WebDataBinder,一般情况下WebDataBinder就能够满足的部分的需求了。@InitBinder标注的方法是在其匹配的Controller请求执行之前执行的。WebDataBinder指定参数名称前缀bi
2020-05-09 13:31:09
793
原创 Controller层接收Date类型参数进行统一转换
需求当后台接收参数类型为Date时,前端传过来的参数类型为String:“2020-05-08 17:08:10”,这样就会出现参数类型不匹配的问题,这种情况下我们就要对接收Date类型参数进行统一处理。Java中提供了PropertyEditorSupport来进行类型转换,我们只需要继承这个类,并且重写它主要的方法就行了。PropertyEditorSupportPropertyEditorSupport中通过setAsText(String text)方法来实现转换逻辑,然后调用setValue
2020-05-08 17:57:39
2722
原创 通过@ControllerAdvice实现全局异常处理
@ControllerAdvice@ControllerAdvice是Spring提供的一个可以对Controller进行增强的注解,通过value参数指定对哪些包下的controller进行增强。我们可以使用这个注解来进行全局异常处理或者数据绑定。定义BaseControllerAdvice/** * ControllerAdvice - 基类 */@ControllerAdvice...
2020-05-08 14:19:20
320
原创 自定义@CurrentUser参数解析获取当前登录用户
HandlerMethodArgumentResolver简介HandlerMethodArgumentResolver接口有以下两个方法 //是否支持要转换的参数类型 boolean supportsParameter(MethodParameter parameter); //如果支持的话进行转换 @Nullable Object resolveArgument(MethodP...
2020-05-07 14:52:09
1585
原创 通过Reflections获取注解内容
简介前段时间做接口权限管理,需要扫描项目内所有用到权限注解的方法,并获取注解里的内容。上网查阅资料后发现通过Reflections可以满足需求。pom依赖 <dependency> <groupId>org.reflections</groupId> <artifactId>reflections</art...
2020-04-27 11:48:09
1472
1
原创 自定义注解实现记录操作日志
应用场景在开发过程中我们会遇到需要使用自定义注解的需求,比如记录后台操作日志、接口权限检查等。元注解用来修饰注解的注解叫做元注解。常用的元注解有@Target、@Retention、@Documented、@Inherited@Target 定义注解的使用目标,也就是能被哪些Java元素所使用。它需要 ElementType 枚举来定义。/** * @Target **/@Doc...
2020-04-20 19:19:08
646
原创 @JsonView返回属性过滤
简介@JsonView可以自定义接口返回实体的某些属性。比如列表接口只需要返回几个重要的属性,而详情接口要返回所有的属性,这个时候就可以用到@JsonView注解。自定义视图/** * 视图 */public class View { /** * 列表视图 */ public interface Simple { } /** ...
2020-04-20 14:25:19
318
原创 通过Spring Data Elasticsearch操作ElasticSearch
Java操作ES的方式Elasticsearch提供了两种java语言操作elasticsearch的API,一种是Java Transport Client,一种是Java REST Client。Java REST Client又分为Java Low Level REST Client和Java High Level REST Client,Java High Level REST Clie...
2020-04-14 13:43:36
404
原创 ELK之Kibana界面简介
简介Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。在ELK体系中Kibana需要将Logstash和ES收集的数据进行图表化展示。基本配置server.host: "localhost"#Kibana端口号,默认为5601server.por...
2020-04-06 11:35:10
2130
原创 ELK之Logstash采集web服务日志
简介Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到“存储库”中。Logstash由三个组件构造成,分别是input、filter和output。input组件支持文件输入、数据库输入、TCP/UDP输入等多种数据源。通过TCP方式采集web服务日志1.在logstash/config/路径下创建logstash.conf文件2.编辑l...
2020-04-05 18:07:22
974
原创 ELK之ES安装IK分词器插件
1.插件下载根据elasticsearch版本下载相应ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases2.在elasticsearch/plugins/目录下创建ik文件夹cd elasticsearch/plugins/mkdir ik && cd ik3.将插件copy到el...
2020-04-05 16:01:41
302
原创 ELK之ES配置及Elasticsearch-Head插件
Elasticsearch主要配置//集群名称cluster.name: my-application//当前节点的名字,不可重复node.name: "node1"//数据存储路径path.data: "/opt/elasticsearch/data"//日志存储路径path.logs: "/opt/elasticsearch/logs"//绑定的ip地址, 0.0.0.0代表...
2020-04-05 15:22:55
238
原创 ELK简介及环境搭建
简介ELK是一套实时数据收集,存储,索引,检索,统计分析及可视化的解决方,包括Elasticsearch、Logstash、Kibana三大开源框架。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文...
2020-04-04 23:33:01
692
原创 编号生成之snowflake雪花算法
简介snowflake算法来源于Twitter,它能满足在分布式环境中生成唯一且呈递增趋势的纯数字编号的需求,并且不需要数据库等第三方的支持。雪花算法每秒大约能够生成26万个编号。其缺点是依赖系统时钟,如果某台机器的时钟回拨或每台机器时钟不一致的情况下,会造成编号重复或乱序的情况。实现原理使用snowflake算法生成的编号是一个64bit大小的整数。 * 1位符号位,0代表正数,1代表...
2020-03-29 11:04:07
1130
原创 编号生成之Hilo高低位算法
高低位算法是Hibernate的一种主键生成策略,使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来作为数据库中的唯一主键。Hilo算法需要额外的数据库表的支持,但不需要每次生成都去查询数据库,查询数据库的频率取决于maxLo。 创建数据库表CREATE TABLE `sn` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `last...
2020-03-28 17:20:32
1165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅