java web
文章平均质量分 59
She_lock
get busy living,or get busy dying.
展开
-
querydsl查询pg数据库 jsonb类型字段 多了一个type问题处理
问题工作中遇到一个问题,QueryDSL查询 pg数据库的一个表,表中一个某个字段类型是jsonb,jsonb的存取和json在java层面上没有什么区别,但是得到的数据,会多余了一个type字段。比如:数据库存的是: {"wubi": "tgrpss", "pinyin": "teshuzhidingjigou", "shoupin": "tszdjg"}经过QueryDSL查出来的数据就变成了下面这样: { "type": "jsonb", "value":原创 2021-07-05 18:06:45 · 1229 阅读 · 0 评论 -
mysql 5.7 版本输入法表情符问题-----java解决办法
测试环境:我使用的工具mysql 8.0.17mybatis starter 2.1.1版本数据库编码utf8mb4,表character也是utf8mb4,collate utf8mb4_general_ci。上面这个配置,写代码,存表情符,完全没有问题。生产环境:我使用的工具mysql 5.7.10-logmybatis starter 2.1.1版本数据库编码ut...原创 2020-01-09 15:14:43 · 432 阅读 · 0 评论 -
概率数据结构---Bloom filter(布隆过滤器)
一、简介When main-stream data structures like Lists, Maps, Sets, Trees etc. are mostly used for achieving certain results about whether the data exist or not, maybe along with their number of occurrence...原创 2020-01-06 16:15:32 · 745 阅读 · 0 评论 -
跨域后台解决方案。
本篇博文基于Springboot 1.5.14.RELEASE一、常规的后台三种解决方案1. 全局化的配置:import org.springframework.context.annotation.Configuration;import org.springframework.format.FormatterRegistry;import org.springframewor...原创 2019-12-26 11:17:23 · 962 阅读 · 0 评论 -
java代码中调用存储过程PROCEDURE以及函数Function
由于网络上这种方面的文章相对较少较乱,所以特别来写一篇。一、新建存储过程如下代码中,关键字说明:IN :表示入参OUT:表示出参RETURNING :表示语句执行完后的返回值。这里返回的是刚插入的数据的idSEQ_WORK_REPORT_ID.nextval:表示的是序列,读者自行新建序列。有关序列的创建,请自行搜索。CREATE OR REPLACE PROCEDURE p_...原创 2019-12-11 14:17:44 · 1782 阅读 · 1 评论 -
开发工具集
字符串转化未数组核心方法:String columnIdstr = "2,3,4,5,6,7,8";Long[] arr = Stream.of(columnIdstr.split(",")) .map(Long::valueOf) //转换 .collect(Collectors.toList()) //流转集合 .toArray(new Long[0]...原创 2019-10-25 14:17:47 · 238 阅读 · 0 评论 -
java重难点
一、简述一下JVM加载class文件的原理机制。Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。1.1、类装载方式类装载方式,有两种 : 1.隐式装载, 程序在运行过程中当碰到...原创 2019-10-24 13:20:31 · 373 阅读 · 0 评论 -
Springboot简单banner定制方法
先看下效果:自定义一个装逼的banner,程序员日常装逼大法之一!定制方法,下面任意一个链接点进去,可以定制你的个性 logo:http://www.network-science.de/ascii/http://patorjk.com/software/taag/然后再 resources 目录下,新建一个banner.txt文件,将你的 logo 放进去: ---------...原创 2019-01-03 09:00:16 · 423 阅读 · 0 评论 -
SpringBoot中WebMvcConfigurer接口详解
JDK8的一些新特性——在接口中新增了default方法和static方法,这两种方法可以有方法体。一、概述java8之前,WebMvcConfigurerAdapter还是WebMvcConfigurer得空实现抽象类,WebMvcConfigurerAdapter没有被标注为@Deprecated被遗弃的类。java8新特性 运用之后:所以今天要说的是 WebMvcConfig...原创 2019-01-10 17:06:13 · 20368 阅读 · 0 评论 -
Mybatisplus中如何优雅地使用单表分页和多表分页
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变。一、配置添加依赖如下,需要注意的是,不要再次配置其他分页插件,否则可能导致分页返回结果total=0: <mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version&...原创 2018-12-26 14:52:33 · 13503 阅读 · 3 评论 -
maven中scope属性
在Maven的依赖管理中,经常会用到依赖(dependency)的scope设置。Scope的使用值和说明compile编译范围,默认scope,在工程环境的 classpath(编译环境)和打包(如果是WAR包,会包含在WAR包中)时候都有效。provided容器或JDK已提供范围,表示该依赖包已经由目标容器(如tomcat)和JDK提供,只在编译的classpath中加载和使...转载 2018-12-06 16:12:33 · 382 阅读 · 0 评论 -
jvm 运行时的内存划分以及垃圾回收
一、jvm 运行时的内存划JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成(新生代和老年代的默认比例为 1:2,也就是说新生代占用 1/3的堆内存,而老年代占用 2/3 的堆内存。),而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配;灰色区域为线程...转载 2019-08-27 13:31:01 · 308 阅读 · 0 评论 -
jasypt中的加密与解密
没什么好说的了,直接看demo。添加依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> &lt原创 2018-11-23 09:27:35 · 47511 阅读 · 2 评论 -
HTTP Status Code
常见的状态码HTTP: Status 200 – 服务器成功返回网页HTTP: Status 404 – 请求的网页不存在HTTP: Status 503 – 服务不可用1xx说明:HTTP: Status 1xx (临时响应)->表示临时响应并需要请求者继续执行操作的状态代码。详细代码及说明:HTTP: Status 100 (继续)-> 请求者应当继续提...原创 2019-01-08 14:18:34 · 376 阅读 · 0 评论 -
oracle使用日常总结
select 中包含@字符查询数据库 zscls 那里的 wskh用户下的t_kfzl 表。其中nvl表示khyyb字段为null时,展示0。select k.activity_id, nvl(k.khyyb,0) khyyb from wskh.t_kfzl@zscls k如遇问题,持续更新中。。。...原创 2019-03-14 16:52:21 · 341 阅读 · 0 评论 -
单个Redis实例下的锁正确使用姿势
一、前言一年前,写了一篇有瑕疵的博文 Redis分布式锁原理及实现 。这篇博文最后虽然给出了redis实现分布式锁的方式,但是在并发相当高的情况下,比如Requests per second: 1453.85 [#/sec] (mean)情况下,如果出现了一次锁超时,那么,之后的请求会有极大的概率一直持续处在被锁的状态,即出现死锁。经过不断查资料已经实践检测,最终,得出了Redis使用单个实...原创 2019-03-29 15:21:57 · 6162 阅读 · 8 评论 -
JConsole远程监控java应用
有时候,当你需要远程监控你服务器上的程序的运行情况,该怎么办呢?其实jdk里面就已经给我们提供了相关的工具,JConsole就是一个很好的JMX工具。下面来看下怎么使用。如下图,我新建了一个名为demo-0.0.1-SNAPSHOT.jar 的应用,然后我们用一下命令来运行这个项目:java -Djava.rmi.server.hostname=192.168.37.129 -Djava...原创 2019-08-27 17:35:42 · 579 阅读 · 0 评论 -
jstat命令对应用内存使用量进行监控。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。乍一看一般格式:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]jstat -class pid :显示加载class的数量,及所占空间等信息。jstat -compiler pid :显示VM实时编译的数量等信息。js...原创 2019-08-28 11:21:21 · 726 阅读 · 0 评论 -
Linux 下ZooKeeper安装
之前写过一篇文章,Linux 下ZooKeeper安装。今天再来以安装zookeeper为例,讲讲 chkconfig 注册为Service安装zookeeper下载地址: https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/linux系统,直接运行以下指令下载安装包:wget https://archive.apa...原创 2019-08-29 11:30:55 · 2333 阅读 · 1 评论 -
jackson常用注解和配置
问题以jackson实体转json时 ,为NULL不参加序列化为例 添加依赖:<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency>实体上使用实体上使用@JsonI...原创 2018-03-27 14:24:34 · 7011 阅读 · 0 评论 -
springboot实现gitee配置中心搭建以及访问
需求场景:由于现在大多都是微服务架构,项目中,我们会配置一些信息,有的是敏感的信息,如果都写在代码里,所有的开发人员都是透明的,这样在一定层度上还是存在风险的。另外,随着业务的不断拓展,这种微服务不断增加,分散在每个微服务项目中,维护极度不方便,所以,拥有一个独立于项目的微服务配置中心变得越发重要。需求:配置文件即各种properties或者yml文件,全部放置在gitee上,然后通过一个配置...原创 2018-11-22 15:52:55 · 3026 阅读 · 1 评论 -
springboot中logback日志常用配置,包含日志切割
添加依赖: &amp;amp;amp;amp;lt;!--监控--&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;gt;org.springframework.boot&a原创 2018-11-22 09:35:42 · 3017 阅读 · 0 评论 -
@RequestBody和@RequestParam区别
@RequestParam用来处理Content-Type 为 application/x-www-form-urlencoded 编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded 类型)RequestParam可以接受简单类型的属性,也可以接受对象类型。实质是将Request.getPa...转载 2018-11-05 17:33:06 · 435 阅读 · 0 评论 -
附件:Thymeleaf 工具对象用法
#dates/** ======================================================================* See javadoc API for class org.thymeleaf.expression.Dates* =====================================================...原创 2018-04-20 14:51:28 · 4636 阅读 · 0 评论 -
mybatis-generator 自动生成增删改查(CRUD)代码,包含Oracle和MySQL
新建项目为了更加清晰的知道这个工具的构成,新建一个maven干净的项目。 next后,填上自己的artifactId和groupId,然后next、finish。OK,一个空项目就新建成功了。pom.xml添加依赖和插件添加依赖: &amp;lt;dependencies&amp;gt; &amp;lt;!-- MySql --&amp;gt; &amp;lt;dep原创 2018-03-10 17:01:54 · 6972 阅读 · 0 评论 -
使用docker-maven-plugin插件构建和推送Docker映像
需求我用idea写的代码,然后,利用docker-maven-plugin 插件,希望执行通过mvn clean package docker:build命令,将代码构建成Docker镜像,直接推送到我的本地虚拟机centos下的docker环境下,可以直接用docker命令运行。添加插件pom.xml 文件添加docker-maven-plugin 插件 &...原创 2018-03-14 17:02:58 · 8589 阅读 · 10 评论 -
代码前的架构分析
架构分析,实际上就是分析前端,后台以及数据库之间的关系。传统模式下面是传统开发模式。右边三个模块,PC客户端、移动端以及微信端,业务逻辑数据需求基本相似,所以服务层基本是相同。这个架构有个明显的缺点就是代码冗余量很大,单个项目代码量大不便于维护。可以说是传统的单体架构。 所以,很有必要把PC客户端、移动端以及微信端这三个模块通用的地方抽出来。改后的架构优化后的架构如下...原创 2018-03-15 23:37:44 · 4362 阅读 · 0 评论 -
web.xml中的url-pattern
web.xml文件中,url-pattern有两种,一种是Servlet的,一种是Filter的。常见的用法如下: <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org...转载 2018-03-27 15:59:24 · 5239 阅读 · 0 评论 -
Ajax跨域请求
Js是不能跨域请求。出于安全考虑,js设计时不可以跨域。什么是跨域跨域 指的时浏览器前端js请求服务端时,如果前端的发布地址和端口与请求的服务端地址和端口不一样。 以下情况属于跨域:1、域名不同时。2、域名相同,端口不同。只有域名相同、端口相同时,才可以访问。可以使用 jsonp 解决跨域问题。什么是jsonpJsonp 是一个跨域解决方案。方案...原创 2018-03-27 22:51:49 · 4207 阅读 · 0 评论 -
单点登录系统设计分析
什么是SSOSSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。传统的登录流程传统流程中的问题在集群环境中。需要把同一套代码部署到多台服务器上。每个工程都有自己独立的sessi...原创 2018-04-10 20:33:36 · 5094 阅读 · 0 评论 -
Spring Boot自定义配置错误页面404、500等
Spring Boot默认使用嵌入式Tomcat,默认没有页面来处理404等常见错误。因此,为了给用户最佳的使用体验,404等常见错误需要我们自定义页面来处理。Java 8的lambda表达式:@Beanpublic EmbeddedServletContainerCustomizer containerCustomizer() { return (container -&g...原创 2018-05-02 17:31:29 · 8318 阅读 · 0 评论 -
自定义注解以及其结合AOP和反射的使用
用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。Annotations仅仅是元数据,和业务逻辑无关。元注解说自定义注解之前,肯定要说元注解,因为自定义注解是由元注解来定义的。@Documented :注解是否将包含在JavaDoc中@Inherited :是否允许子类继承该注解@Retention :什么时候使用该注解,即注解的生命周期RetentionP...原创 2018-05-09 15:57:25 · 5913 阅读 · 0 评论 -
日常开发sql使用总结
1、关联分页查询首先利用插件分页,查询出来分页的currentPage、pageSize、totalPage、totalCount 以及分页的数据主键 ids。如下: @GetMapping(&amp;amp;quot;/queryPageBookHistoryVo&amp;amp;quot;) public R&amp;amp;amp;lt;PageUtils&amp;amp;amp;gt; queryPageBookHis原创 2018-10-23 11:41:30 · 485 阅读 · 0 评论 -
java 正则表达式基础以及正则实现表单参数校验
正则表达式初识 正则表达式定义了 字符串 的模式,可以用来搜索、编辑或处理文本。 1、正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。今天要讲的是 Java正则表达式。一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配"Hello World" 字符串.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"\s..原创 2018-09-03 11:00:04 · 2358 阅读 · 0 评论 -
Redis分布式锁原理及实现
前言解决问题:多个进程多台机器,对一个数据进行的操作的互斥。比如,下订单和扣库存的操作,这两个操作必须连贯,一个线程执行完这两个操作后,下面一个线程才可以介入执行,如果同时并发执行,极大可能会出现“多卖”的现象。解决方法:synchronized 关键字,给方法加一把锁,这样可以解决并发问题,但是排队执行的速度很慢,高并发情况下不宜这么干。Redis 分布式锁,主要利用SETNX ...原创 2018-08-19 11:08:45 · 29111 阅读 · 2 评论 -
Quartz源码角度分析以及Springboot中的案列实现
原理若要明白 Quartz 怎么用,首先要了解 Job (任务)、JobDetail (任务信息)、Trigger (触发器)和Scheduler (调度器)这 4 个核心的概念。Jobjob 是一个接口,只定义一个方法execute(JobExecutionContext context),在实现接口的 execute 方法中编写所需要定时执行的 Job(任务),JobExecuti...原创 2018-08-15 13:14:02 · 4883 阅读 · 0 评论 -
java Excel表格导入导出
效果图依赖主要为 poi 和 jxl 依赖,如下: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.poi&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;poi&am原创 2018-08-14 10:13:26 · 4812 阅读 · 0 评论 -
Rest 概要
REST = RESTful = Representational State Transfer。是在因特网上提供计算机系统之间的互操作性的一种方式。基于Http协议的资源传递,包括JSON、XML和文本等。统一接口资源识别(Identification of resources)URI(Uniform Resource Identifier )资源操作(Manipulat...原创 2018-05-31 17:30:10 · 4174 阅读 · 0 评论 -
利用 redis 实现延迟消息队列
有一些应用场景,比如下完订单后,20分钟没有付款,可以取消订单。这里会用到延迟消息队列。由于不想维护各种 MQ,如果你的项目里面用了 redis 的话,可以选择利用 redis 的特性来实现延迟消息队列。项目地址:https://gitee.com/olysa/redismq 项目结构:├─redismq-common //生产者和消费者公用代码,比如队列信息和re...原创 2018-06-07 14:56:39 · 15583 阅读 · 8 评论 -
广播式的websocket 推送
WebSocket 为浏览器和服务器端提供异步通信的功能,即浏览器可以向服务器发送消息,服务器也可以向浏览器发送消息。WebSocket 需要浏览器的支持,如IE 10+、Chrome 13+、Firefox 6+。因为js插件对浏览器版本有要求。 Websocket 是通过一个socket来实现双工异步通讯的能力,开发时使用STOMP协议。本事例基于springboot。...原创 2018-04-25 12:43:57 · 5233 阅读 · 0 评论