- 博客(24)
- 收藏
- 关注
转载 Flask设置返回json格式数据
问题描述在Flask中直接返回list或dict是不行的,如from flask import Flaskapp = Flask(__name__)@app.route('/')def root(): t = { 'a': 1, 'b': 2, 'c': [3, 4, 5] } return tif...
2018-07-23 21:16:59
2996
原创 commons-lang3的tuple包介绍
问题有时候我们调用方法的时候返回值有可能不止1个,比如说我们返回name = "张三" age = 20这两个值,那么这个时候方法的返回值怎么写呢。在Scala和python中都有Tuple使用,在java中我们怎么办。很容易我们就想到了一个方式:可以构造一个User类来封装这两个属性。 但是如果返回的两个值并没有任何关联关系,或者说每一个方法返回的参数都不同,那么我们就得为每一个方法的返回...
2018-07-23 20:48:44
5400
转载 责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任我对于责任链的理解就是如果if else if else if … else 这样的逻辑代码写多了难以维护...
2018-07-23 20:48:24
291
原创 Scala使用Netty
java能写的换做scala也可以写,而且scala在语法上面右比java简洁很多,所以尝试用scala写一个简单的netty demo服务端ServerHandler 处理消息class ServerHandler extends ChannelInboundHandlerAdapter{ /** * 有客户端建立连接后调用 */ override ...
2018-07-23 20:47:50
846
原创 Scala的trait
今天看一下scala的trait,用法不讲,就看一下编译再反编译的源码 定义一个traittrait TraitDemo { def say(): Unit}使用javac命令编译这个文件# scalac TraitDemo.scala得到一个TraitDemo.clss,我们再使用javap命令反编译这个class文件看一下# javap TraitDem...
2018-07-23 20:47:28
279
转载 Redis 分布式锁的正确实现方式( Java 版 )
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...
2018-07-23 20:05:00
218
转载 Mysql优化
第一方面:30种mysql优化sql语句查询的方法对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id ...
2018-07-23 19:48:21
149
转载 Integer用==比较127相等128不相等的原因
前言这个几乎是Java 5引入自动装箱和自动拆箱后,很多人都会遇到(而且不止一次),而又完全摸不着头脑的坑。虽然已有很多文章分析了原因,但鉴于我这次还差点坑了同学,还是纪录下来长点记性。问题描述例一来个简单点的例子public static void main(String[] args) { for (int i = 0; i < 150; i++) {...
2018-07-23 19:18:16
4805
4
转载 数据库事务特性以及隔离级别
一、事务的四大特性(简称ACID)数据库如果支持事务的操作,那么就具备以下四个特性:原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(Isolation) 一个事务的执行不能被其他事务干扰。...
2018-07-23 18:59:54
278
原创 @DomainEvents和@AfterDomainEventPublication注解使用及一点点点理解。
问题刚才在读Spring-data-mongodb的文档,读到7.7的时候就发现了@DomainEvents 和@AfterDomainEventPublication这么两个注解。 就看懂了最后一句每次调用Spring Data存储库的save(…)方法时,都会调用这些方法。哎,有意思,但是官方给的这个例子真的有点瞎。。自己试试吧。试验一个用户public class Cu...
2018-06-08 18:27:56
2380
原创 java 内存模型 锁的理解
java 内存模型 锁的理解Java SE 1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”。 个人对锁的理解:偏向锁引入目的是消除在无竞争情况下的同步原语,进一步提高程序的运行性能。 在没有线程竞争同步代码块的时候,会在对象头和栈帧中的锁记录里存储偏向锁的线程ID,以后该线程在进入和退出同步块的时候不需要进行CAS操作来加锁解锁,只需简单地测试一下对象头...
2018-06-05 16:40:26
399
原创 java 实现自定义线程池
java 实现自定义线程池定义线程池接口public interface ThreadPool<Job extends Runnable> { // 执行一个Job void execute(Job job); // 关闭线程池 void shutdown(); // 添加工作者线程 void addWorkers(int ...
2018-06-05 16:39:37
1778
原创 netty 数据包黏包拆包处理器使用及遇到的问题
netty 数据包黏包拆包处理器使用及遇到的问题最近因为在做一个游戏后端,需要用到netty,在与前端沟通之后规定了数据包结构: | encode | encrypt | command | length | body | 结构 类型 解释 tag byte 标签,默认值为0x01 encode byte 编码格式,默认值为0x01...
2018-05-25 17:17:30
11018
3
原创 maven项目打包的时候忽略第三方依赖jar包
因为项目需要经常性的修改-打包-上传到服务器,包含lib的war包比较大,第三方jar包基本不会大动,所以就想把这些jar包移出war包,放在jetty里面,这样每次只需要编译打包源码即可,war包大小极度减小,方便上传。 maven配置<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-
2017-11-28 18:20:50
9019
原创 朋友圈的点赞实现。
紧接着上一篇文章,这里讲如何实现朋友圈点赞的功能,并且记录了是谁点的赞,区分出我是否点过赞。 其实本来点赞功能最先是被我用在文章上面的,文章的评论点赞收藏功能,琢磨了一段时间。后来的朋友圈点赞实现也就直接使用之前写过的代码了。 点赞其实很好做,记录点赞数++ 就可以实现,但是遇到需要判断出是否点赞过,点过赞的标识出已点赞的状态,这就比较麻烦了。至少需要记录这一条消息的点赞人id,而每次点赞都要遍
2017-11-21 15:43:18
11461
1
原创 朋友圈的设计及实现。
最近项目需求需要模拟微信的朋友圈功能,实现可以发送图文消息,好友可以查看,满足添加新的好友之后,可以在朋友圈中刷新到好友的消息,看了许多文章,琢磨出来一套流程。这里只记录一下我的实现思路,并不贴上实际的代码。核心结构有三张表:#消息表CREATE TABLE `t_friend_circle_message` ( `id` bigint(15) NOT NULL AUTO_INCREMENT
2017-11-21 15:04:32
29893
17
原创 贴一个比较实用的maven发布项目到服务器的插件
插件就是wagon-maven-plugin,用来把打包之后的文件发送到服务器上<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>wagon-maven-plugin</artifactId> <version>1.0</version> <configuration> <source>1
2017-11-20 18:07:51
389
原创 mysql 支持 emoji
MYSQL 5.5 之前,UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区,BMP是从哪到哪,到http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters这里看,基本就是0000~FFFF这一区。 从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集。utf8
2017-09-29 16:52:47
1274
转载 [转]Linux任务前后台的切换
[转]Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的进程n到前台来 4. bg %n 让进程n到后台去 5. kill %n 杀死job PS:”n”为jobs命令查看到的job编号,不是进程编号. fg、bg、jobs、&、ctrl + z都是跟系
2017-09-25 12:02:12
336
原创 intellij idea实用插件
记录一下intellij idea下载量最多的插件什么用。BashSupport 对于IntelliJ的Bash语言支持.Markdown support 使用普通文本编辑器编写的标记语言.Lombok plugin Lombok插件,具体使用Lombok介绍及使用方法Translation 翻译插件。可以使用有道apiGrep Console 可以根据规则对控制台输出的日志进行不同颜
2017-09-25 11:04:13
812
原创 解决redis序列化java8 LocalDateTime错误的问题
redis序列化选择方式<!-- 缓存序列化方式 --> <!--对key的默认序列化器。默认值是StringSerializer--> <bean id="keySerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" /> <!--是对value的默认序列化器,默
2017-08-15 15:02:19
19512
4
原创 java8 LocalDate 类型 json 解析 日期格式处理
使用java8 LocalDate新日期类型 json输出 如何转成yyyy-MM-dd格式
2017-08-04 10:52:06
12188
1
原创 SpringMvc直接接收json数据自动转化为Map
springMvc直接接收json数据自动转化为Map ,必须加上@RequestBody注解并且前台ajax发送请求的时候需要对数据进行格式化$.ajax({ type : "POST", url : "/search", data :JSON.stringify(searchData),
2017-05-05 18:44:35
15228
4
原创 Spring boot ajax跨域请求,页面和java服务端的写法
private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfigura
2017-05-05 14:50:23
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人