随笔分类 -  Spring

摘要:在上一篇博客中,我们准备好了数据。现在数据已经以我们需要的格式,存放在Elasticsearch中了。 本文讲述如何在Elasticsearch中进行空间GEO查询和聚合查询,以及如何准备ajax接口。 平台的服务端部分使用的springboot+mybatis的基本开发模式。工程结构如下。 可以看 阅读全文
posted @ 2018-02-01 15:20 扎心了老铁 阅读(3608) 评论(1) 推荐(3) 编辑
摘要:在使用springboot进行开发的过程中,我们经常需要处理这样的场景:在服务启动的时候,需要向服务注册中心(例如zk)注册服务状态,以便当服务状态改变的时候,可以故障摘除和负载均衡。 我遇到过两种注册的途径: 1、在Spring的webapplication启动完成后,直接进行注册; 2、在ser 阅读全文
posted @ 2018-01-09 12:30 扎心了老铁 阅读(2677) 评论(0) 推荐(0) 编辑
摘要:本文主要讲述springboot提供的声明式的事务管理机制。 一、一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优点是: 1)非侵入式,业务逻辑不受事务管理代码的污染。 2)方法级别的事务回滚,合理划分方法的粒度可 阅读全文
posted @ 2018-01-04 12:36 扎心了老铁 阅读(48578) 评论(3) 推荐(3) 编辑
摘要:本文描述了一个系统,功能是评价和抽象地理围栏(Geo-fencing),以及监控和分析核心地理围栏中业务的表现。 技术栈:Spring-JQuery-百度地图WEB SDK 存储:Hive-Elasticsearch-MySQL-Redis 什么是地理围栏? LBS系统中,地理围栏指的是虚拟边界围成 阅读全文
posted @ 2017-12-16 21:43 扎心了老铁 阅读(2542) 评论(1) 推荐(1) 编辑
摘要:前言 什么是mybatis二级缓存? 二级缓存是多个sqlsession共享的,其作用域是mapper的同一个namespace。 即,在不同的sqlsession中,相同的namespace下,相同的sql语句,并且sql模板中参数也相同的,会命中缓存。 第一次执行完毕会将数据库中查询的数据写到缓 阅读全文
posted @ 2017-12-11 08:26 扎心了老铁 阅读(16528) 评论(0) 推荐(2) 编辑
摘要:前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端分页 一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。 特点是:简单, 阅读全文
posted @ 2017-12-07 12:19 扎心了老铁 阅读(202528) 评论(7) 推荐(14) 编辑
摘要:commons-pool和commons-pool2是用来建立对象池的框架,提供了一些将对象池化必须要实现的接口和一些默认动作。对象池化之后可以通过pool的概念去管理其生命周期,例如对象的创建,使用,销毁等。例如我们通常使用的连接池,连接池可以有效管理连接的数量和状态,保证连接资源的情况而且避免并 阅读全文
posted @ 2017-10-15 21:57 扎心了老铁 阅读(2381) 评论(0) 推荐(0) 编辑
摘要:SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter。 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor来实现的。 在SpringMVC中定义一个Interceptor非常 阅读全文
posted @ 2017-10-11 19:40 扎心了老铁 阅读(10692) 评论(0) 推荐(0) 编辑
摘要:在Dao层,通过数据库表反向生成,可以节省我们很多的精力,把更多的精力投入复杂的业务中。 数据库表反向生成,指的是通过数据库如mysql中的库表schema生成dao层读写表的基础代码,包括model(entity)和dao(mapper)。 在本文中我先介绍java中mybatis-generat 阅读全文
posted @ 2017-09-08 18:14 扎心了老铁 阅读(17154) 评论(0) 推荐(1) 编辑
摘要:我们这里用一个简单的小功能来演示一下如何使用springboot集成thrift 这个功能是,判断hdfs路径存在。 1、先解决依赖 2、编译thrift文件 先安装thrift编译器。 jazz.thrift文件如下。namespace相当于java里的package。thrift文件的写法这里就 阅读全文
posted @ 2017-08-23 20:07 扎心了老铁 阅读(7657) 评论(0) 推荐(0) 编辑
摘要:本文介绍如何在springboot项目中集成kafka收发message。 1、先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 这里我们先把配置文件展示一下 2、Configuration:Kafka producer 1)通过@C 阅读全文
posted @ 2017-08-13 14:21 扎心了老铁 阅读(97574) 评论(1) 推荐(6) 编辑
摘要:本文介绍如何使用springboot的sheduled实现任务的定时调度,并将调度的任务实现为并发的方式。 1、定时调度配置scheduled 1)注册定时任务 2)启动定时任务 这里就介绍两种配置调度时间的方式: 1)cron表达式 2)fixedRate,调度频率也就是调度间隔 如下代码中设置的 阅读全文
posted @ 2017-08-04 17:09 扎心了老铁 阅读(4603) 评论(0) 推荐(1) 编辑
摘要:最简单的实现服务高可用的方法就是集群化,也就是分布式部署,但是分布式部署会带来一些问题。比如: 1、各个实例之间的协同(锁) 2、负载均衡 3、热删除 这里通过一个简单的实例来说明如何解决注册发现和负载均衡。 1、先解决依赖,这里只给出zk相关的依赖,pom.xml如下 2、ZkClient 这里使 阅读全文
posted @ 2017-07-17 20:03 扎心了老铁 阅读(8546) 评论(1) 推荐(1) 编辑
摘要:springboot的原则是简化配置,本文试图不通过xml配置,使用configuration配置数据源,并进行简单的数据访问。 并且配置了多数据源,在开发过程中这种场景很容易遇到。 1、依赖 springboot的starter mybatis的springboot集成包 jdbc 2、在appl 阅读全文
posted @ 2017-07-07 18:02 扎心了老铁 阅读(24121) 评论(0) 推荐(0) 编辑
摘要:本文探讨在web开发中如何解决并发访问带来的数据同步问题。 1、需求: 通过REST接口请求并发访问redis,例如:将key=fusor:${order_id} 中的值+1; 2、场景: 设想,多线程对key=fusor:${order_id}并发访问触发了竞态条件,例如两个线程同时发现key=f 阅读全文
posted @ 2017-06-08 15:36 扎心了老铁 阅读(8923) 评论(1) 推荐(0) 编辑