- 博客(294)
- 资源 (23)
- 问答 (7)
- 收藏
- 关注
原创 SpringBoot事务管理:声明式事务和编程式事务。将Service层的事务执行结果传递出去
在SpringBoot中使用事务很简单,这一篇不是为了讲事务,主要是讲一下一个工具类,将需要加入事务的Service层代码作为参数传递出去并返回事务的执行结果(成功和回滚)。声明式事务在SpringBoot中声明式事务最常见,就是把需要事务的方法用@Transactional标注一下就行了,这个一般用在Service层。标注后该方法就具备了事务的能力,出错了会自动回滚。在大部分场景下,
2017-06-12 16:50:45 26608 6
原创 Springboot中对jpa动态查询条件的封装
jpa对于固定参数的条件查询比较简单,可以在Repository中直接用参数名来查询。但是对于不固定的参数查询就比较麻烦了,官方提供的是继承JpaSpecificationExecutor,然后自己拼接Specification。这一篇主要是对Specification进行封装,让写法更友好. 代码参考:http://lee1177.iteye.com/blog/1994295。感觉还不够完整,回
2017-06-06 11:51:55 21788 12
原创 6 ElasticsearchTemplate和JPA中ElasticsearchRepository的选择
通过前面的文章可以知道,JPA中有个ElasticsearchRepository可以做Elasticsearch的相关增删改查,用法和普通的CRUDRepository是一样的,这样就能统一ElasticSearch和普通的JPA操作,获得和操作mysql一样的代码体验。但是同时可以看到ElasticsearchRepository的功能是比较少的,简单查询够用,但复杂查询就不够了。而Ela
2017-06-05 11:21:10 10120
原创 5 在springboot中使用ElasticsearchTemplate 操作ElasticSearch(本机和远程服务器)
第三篇和第四篇分别介绍了ElasticSearch的http请求命令和对java api的封装。像封装好的ES java api可以使用于普通的java项目里,来简化一些原生的命令。 springboot作为一个集成了N多功能的框架,自然不需要我们自己来封装工具类,它直接提供了ElasticsearchTemplate,和RedisTemplate一样是一个封装好的模板,当然你觉得Elastics
2017-06-03 12:55:29 30686 2
转载 4 ElasticSearch java api封装工具类
上一篇讲了通过http请求对ElasticSearch的增删改查操作,java也提供了相应的api来完成这些操作,这一篇是根据java的api封装的工具类。地址为:http://blog.csdn.net/lc375660910/article/details/62038286这是针对ES查询的一套封装。 因为时间有限仅仅能够支持一些简单查询,但能满足大部分开发需求。同时也
2017-06-02 15:18:35 10055 8
转载 3 ElasticSearch 索引查询使用指南
转账自http://blog.csdn.net/pilihaotian/article/details/52452014一 查询集群健康我们通常用用_cat API检测集群是否健康。 确保9200端口号可用: curl ‘localhost:9200/_cat/health?v’ 绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用. 二
2017-06-02 15:10:12 4249
原创 2 Elasticsearch全文检索和匹配查询
官网的翻译可参考:http://blog.csdn.net/dm_vincent/article/details/41693125 Elasticsearch主要功能就是完成模糊检索、字符串匹配,所以使用起来非常方便。而且它有一套自己的匹配规则,来决定把哪项搜索结果展示在前面。全文检索测试还接着上一篇的demo,在Controller的add方法加条数据@RequestMapping("/add"
2017-06-02 12:20:26 9400 1
原创 1 springboot整合elasticsearch入门例子
记录一下最入门的例子。一:安装elasticsearch。在mac上很简单,brew install elasticsearch。安装完成后启动,brew services start ElasticSearch就可以了。然后访问http://localhost:9200/,出现一个json串的界面就OK了。9200是http的端口,9300是给java用户的端口。 如果是linux,看看这篇ht
2017-06-01 18:12:01 53067 30
原创 解决某些有到期时间的场景,不适合定时扫描表来完成处理的情况
有几个场景业务的处理:一:有一个很大的商品订单表,每天新增数十万条数据。每条数据有个到期时间,需要在到期时间后做一些处理,譬如关闭订单,改变状态之类的。二:有个付款功能,有到期时间,时间到了需要关闭,或者通知用户等等。三:抢购时,时间到了,用户不处理不付款的,要把商品回到库存里之类的。大概类似的一些有到期时间功能的业务场景,但是要么是有较强的实时性,譬如希望到期后立马就改变状态或者
2017-05-10 18:32:02 5336
原创 SpringMVC参数校验,包括JavaBean和基本类型的校验
该示例项目使用SpringBoot,添加web和aop依赖。 SpringMVC最常用的校验是对一个javaBean的校验,默认使用hibernate-validator校验框架。而网上对校验单个参数,譬如String,int之类的资料极少,这一篇就是讲这个的。校验JavaBeanpackage com.example.bean;import org.hibernate.validator.con
2017-05-04 18:31:16 17429 10
转载 SpringMVC源码解析,看SpringMVC的工作流程
SpringMVC在使用过程中,大多是使用注解,对它的实现接口之类的关系理解变得模糊, 通过对XML配置的理解,可以理清各个类的关系,譬如控制器类要实现Controller接口。接触SpringMVC,对它的xml文件配置一直比较模模糊糊,最近花了一点时间稍微看了下源代码,再加上调试,开始逐渐理解它,网上的类似的内容有很多,写本文主要是自己加深一下理解。本文适合用过SpringMVC的开发
2017-05-03 10:44:53 2504
原创 4 Springboot中使用redis存储集合数据,并模拟条件查询、分页读取
前面几篇讲了使用redis存储单个对象,自动缓存、更新、删除的做法,在实际项目中,更常用的是分页查询集合数据,条件查询(譬如按照添加时间倒序排列)。redis本身是不提供条件查询的,因为是一个非关系型数据库,那么其实通过一些手段,也是能完成条件查询的,尤其是有顺序的条件查询。因为redis里有个zset,这个结构里面存储的数据是有顺序的。下面就来看看怎么做,接着前几篇的例子讲,以Post表
2017-04-28 13:48:53 13077
原创 Spring boot中使用aop详解
aop是spring的两大功能模块之一,功能非常强大,为解耦提供了非常优秀的解决方案。现在就以springboot中aop的使用来了解一下aop。一:使用aop来完成全局请求日志处理创建一个springboot的web项目,勾选aop,pom如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt
2017-04-27 17:38:12 22573 6
原创 3 Springboot中使用redis,redis自动缓存异常处理
在上一篇中,提到了使用配置文件来定义连接信息,由于前面讲的都是框架自动使用redis缓存数据,那么如果出现了异常又该怎么处理?这里我们修改一下配置信息,让redis故意连接不上,看看异常信息。修改一下yml里port端口,然后再执行一下add或者query操作,看控制台报错信息。打开AbstractCacheInvoker类,看到里面有put,get,evict等方法,就是对应
2017-04-25 10:08:28 11727 1
原创 2 Springboot中使用redis,配置redis的key value生成策略
redis在springboot中的应用,springboot整合redis,redis存储集合
2017-04-24 14:20:06 39127 4
原创 1 Springboot中使用redis,自动缓存、更新、删除
springboot整合redis,如何用redis做分页查询,redis条件查询
2017-04-21 15:53:14 68353 15
原创 1 SpringBoot 使用sharding jdbc进行分库分表
分库分表在数据量大的系统中比较常用,解决方案有Cobar,TDDL等,这次主要是拿当当网开源的Sharding-JDBC来做个小例子。 它的github地址为:https://github.com/dangdangdotcom/sharding-jdbc 简介: Sharding-JDBC直接封装JDBC API,可以理解为增强版的JDBC驱动,旧代码迁移成本几乎为零: 可适用于任何基于ja
2017-04-19 17:17:39 66743 23
转载 Java 并发工具包 java.util.concurrent 用户指南
转自:http://blog.csdn.net/defonds/article/details/44021605/译序本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html。本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友
2017-04-13 08:41:19 2721
原创 SpringBoot全局异常处理
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-04-12 17:18:44 25728 6
转载 spring cloud网关zuul之filter注册
原文地址 https://my.oschina.net/u/3300636/blog/851984?nocache=1491877235421zuul开启首先由@EnableZuulProxy 注解是开启zuul的注解。@EnableCircuitBreaker@EnableDiscoveryClient@Target({ElementType.TYPE})@Retention(
2017-04-11 11:15:35 6613 1
转载 spring cloud网关zuul源码之Filter管理
接上一篇request管理。原文地址:http://blog.csdn.net/haha7289/article/details/54344150zuul支持动加载Filter类文件。实现原理是监控存放Filter文件的目录,定期扫描这些目录,如果发现有新Filter源码文件或者Filter源码文件有改动,则对文件进行编译加载。目前zuul支持使用Groovy编写的Filter。
2017-04-11 11:12:12 1597
转载 spring cloud网关zuul源码Request生命周期管理
zuul是spring cloud集成的网关(api gateway),主要是做统一的权限控制,路由分发,反向代理和负载均衡。原文链接:http://blog.csdn.net/haha7289/article/details/54312043zuul核心框架zuul是可以认为是一种API-Gateway。zuul的核心是一系列的filters, 其作用可以类比Se
2017-04-11 11:10:08 5528
转载 7Java学习笔记之数据结构——HashMap
原文地址:http://www.importnew.com/20386.htmlJava为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hash
2017-04-05 15:31:53 1022
转载 java中常用数据结构
原文链接:http://blog.csdn.net/u010947402/article/details/51878166JAVA中常用的数据结构(java.util. 中)Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。其主要的关系(继承关系)有: (-
2017-03-29 17:40:44 909
原创 5Java学习笔记之数据结构——字符串String
字符串这个非常非常常用的数据结构,平时用的最多,但它到底是怎么工作的,可能没多少人去关心过。下面就来谈谈这个String到底有什么特殊的。String s1 = "abc";String s2 = "abc";String s3 = "ab" + "c";String s4 = new String("abc");判断上面s1,s2,s3,s4是否相等,用==答案是:s1=
2017-03-29 15:25:06 4002
原创 4Java学习笔记之数据结构——队列
队列也是一种特殊的线性表,像栈是先进后出(FILO),而队列就像排队一样,先进的先出(FIFO)。插入时只能插入到队列的后端,删除时只能删除头部,这样的数据结构能维持住排队的次序。在Java里有Queue这个接口,和List、Set同一级。像LinkedList类就同时implements了List和Queue接口。乍一看,平时项目里好像没用到队列的场景,其实不然,队列应用场景极为丰富,也
2017-03-29 13:46:59 684
原创 3Java学习笔记之数据结构——栈
栈,是一种特殊的链表。栈,只能在表尾进行插入和删除。好比一个弹夹,往里面压子弹,每次添加时都是在弹夹最外部添加,打出子弹时也是每次都从最外部打出。它是一种LIFO(last in first out)的线性结构。约定:末尾,也就是允许被插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。平时在开发中貌似很少用到这个数据结构,或者说不知道该什么场合下使用栈,可能总是习惯性用数
2017-03-29 10:09:15 689 2
原创 在普通Java类里使用spring里注入的service、dao等
在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service。下面讲一个方法,让普通工具类也能使用service。定义一个类 SpringTool
2017-01-20 12:15:02 17717 6
原创 傻瓜方法求集合的所有子集问题(java版)
给定任意长度的一个集合,用一个数组表示,如{"a", "b","c"},求它的所有子集。结果是{ {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}和一个空集。 下面讲的就是如何用一个原始的傻瓜方法(非算法)求它的所有子集。 首先我们知道是它的子集个数是2^length,如果长度是3,那子集就共有2的3次方=8个,包括空集。 求子
2016-03-22 17:22:50 3169
原创 回溯算法解迷宫问题(java版)
以一个M×N的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计程序,对任意设定的迷宫,求出从入口到出口的所有通路。 下面我们来详细讲一下迷宫问题的回溯算法。 该图是一个迷宫的图。1代表是墙不能走,0是可以走的路线。只能往上下左右走,直到从左上角到右下角出口。 做法是用一个二维数组来定义迷宫的初始状态,然后从左上角开始,不停的去试探所有可行的路线,碰到1就结束本次
2016-03-21 17:16:53 11501 5
原创 回溯算法解八皇后问题(java版)
八皇后问题是学习回溯算法时不得不提的一个问题,用回溯算法解决该问题逻辑比较简单。 下面用java版的回溯算法来解决八皇后问题。 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 思路
2016-03-21 12:07:30 17652 6
原创 回溯算法解数独问题(java版)
下面来详细讲一下如何用回溯算法来解数独问题。 下图是一个数独题,也是号称世界上最难的数独。当然了,对于计算机程序来说,只要算法是对的,难不难就不知道了,反正计算机又不累。回溯算法基本上就是穷举,解这种数独类的问题逻辑比较简单。不管算法懂不懂,先把类建出来,变量定义好,那放大学试卷上就是可以拿两分了。package shudu;/** * Created by w
2016-03-17 15:22:36 20371 9
转载 快速排序算法
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速
2016-03-15 17:00:28 738
原创 TabLayout用法,android顶部导航栏,android底部导航栏
TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航。类似于这样的,能设置选中时字体的颜色和选中时的图片。首先我们引入compile 'com.android.support:design:23.1.1'它的用法是:第一种比较简单,就是文本和一个指示器。布局文件是<LinearLayout xmlns:a
2016-03-07 17:19:01 23073 2
原创 解析腾讯企业邮箱到自己域名,设置mail的cname
之前注册了腾讯企业邮的免费邮箱,后来想把企业邮箱和域名绑定起来,发现了一些问题。 先来看正常的部分,假设你已经注册过了腾讯企业邮箱免费版,并且已经绑定好了域名。 然后在域名提供商那里设置域名解析的MX记录。 大家可以看到,企业邮箱其实与你的服务器没有任何关系,你可以选择任何一家的企业邮箱,譬如阿里云企业邮箱,网易的,或者腾讯的。我比较推荐阿里云的。 你只需要
2016-03-01 10:14:18 85664 3
原创 android充当server服务器
在android上跑起来一个web服务器,可供电脑和手机通过http访问。这个需求并不常见,网上资料也不多,找了一会发现了一个不错的框架。github链接地址https://github.com/NanoHttpd/nanohttpd 这个框架使用起来比较简单,也符合需求。 从git上clone项目下来后,里面有很多个文件夹,core、fileupload、src、sample
2016-02-29 10:45:25 9919 3
java反编译工具jad
2012-11-10
音乐播放器java制作
2012-11-07
ElasticSearch怎么做查询某个字段大于某个值的查询
2017-09-20
问一个使用hibernate对表排序的问题
2016-10-25
javaweb大神请进,如何在struts的一个action里处理多个数据操作逻辑
2016-07-15
求一个富文本编辑器,生成的网页能在手机上适配。不需要在电脑上适配
2016-06-08
服务器上tomcat需要更新程序时,大家是怎么办的,直接关闭tomcat重启吗?
2016-04-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人