自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 Spring整合RabbitMQ(Fanout模式)

RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP的标准实现。写本篇文章之前,先了解下几个关于RabbitMQ重要的概念:1、Exchange:交换机,决定了消息路由规则;2、Queue:消息队列,每个消息都会被投入到一个或多个队列;3、Channel:进行消息读写的通道,在客户端的每个连接里,可建立多个channel,每个channel代表一...

2018-10-03 23:20:53 1663

原创 获取当前时间所在天之中的最小时间和最大时间

 如当前时间:2018-09-03 13:14:09,最小时间为2018-09-03 00:00:00,最大时间为2018-09-03 23:59:59LocalDateTime min = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);LocalDateTime max = LocalDateTime.of(LocalDate.now(...

2018-10-03 20:09:37 7002 1

原创 LocalDate计算两个日期间距离

1、LocalDate提供了until()方法,计算了两个日期之间的年、月和日的周期例如: from {@code 2017-08-28} to {@code 2018-09-30} is "1 year, 1 months and 2 days"示例代码:LocalDate localDate1 = LocalDate.parse("2017-08-28");LocalDate ...

2018-10-03 11:25:56 18414

原创 对象转Json字符串时,忽略指定属性

问题描述:前段时间有个需求,在一个老项目(BS架构)上改造,整一些接口给移动端调用,然后基本是调用老系统的原有的接口就行,但是有些接口返回的实体对象,不需要某些字段,比如老系统的某个原接口是返回某个对象的a,b,c,d四个字段属性值,但是移动端只需要a,b字段属性值就行,这个时候如果在实体类相应的字段加@JSONField注解就好影响到原接口的数据返回。解决方法:json-lib.jar包提供了一...

2018-06-08 10:48:16 4729 1

原创 线程笔试题之Lock解法

之前做过阿里巴巴一个有关多线程的在线笔试题,题目大意是是一共有9个苹果,有两只猴子同时吃,一只猴子每次可以吃2个苹果,另外一只每次可以吃3个苹果,当苹果数量少于2个时,每次吃2个苹果的猴子则不能吃了,当苹果数量少于3个时,每次吃3个苹果的猴子则不能吃了。这道题的解法很简单,就是开启两个线程,拿苹果的操作要加锁,本题用Lock来实现下:import java.util.concurrent.lock...

2018-03-30 22:43:00 428

原创 第三方传输不确定json字段转化为对象问题

问题描述:与第三方公司对接接口,第三方提供了一个接口文档,里面有一些字段信息,很显然我们接收方一般根据接收过来的json数据转化为一个实体对象接收即可,但是有个问题存在,就是第三方公司后续版本针对此接口增加字段,如果我们接收的实体对象没有定义新增的字段,那么json转对象就会报错。比如:json为String json = "{\"pno\":\"test\",\"tn\":\"757C3F0B0...

2018-03-22 23:01:51 2387

转载 Spring Cloud中,Eureka常见问题总结

Spring Cloud中,Eureka常见问题总结。指定Eureka的Environment1eureka.environment: 指定环境参考文档:https://github.com/Netflix/eureka/wiki/Configuring-Eureka指定Eureka的DataCenter1eureka.datacenter: 指定数据中心参考文档:https://github.c...

2018-02-08 16:51:18 335

原创 java序列化解决方案

序列化一般用在网络传输或者对象持久化中,通过将对象序列化为二进制数据在网络层传输或者保存。java的jdk为我们开发提供了序列化方案,但是java提供的默认的序列化方法有很多弊端,在性能要求很高的系统中,不是一个好的方案。java默认的序列化方案有以下弊端:1、无法跨语言对于java序列化后的字节数组,别的语言无法反序列化,比如服务提供者用java序列化对象给c++调用者,c++调

2018-01-15 20:45:10 444

原创 Google的Protobuf入门

Google的Protobuf作为一门开源的高性能的编解码框架,在通信框架中扮演者很重要的角色,很多商业项目将其作为编解码框架。Protobuf有以下优点:1、产品非常成熟2、跨语言,不局限java3、编码后消息很小,利于存储和传输4、编码性能高5、支持不同版本的协议前后兼容6、支持定义可选和必选字段 本文通过Protobuf对pojo对象编解码来来学习Protobuf

2018-01-15 20:07:57 11595

原创 java.util.LinkedHashMap cannot be cast to com.xxx

问题描述:接收json格式为:{ "attributes": {}, "dataItems": [{ "attributes": { "cardNo": "", "isOut": "1", "inOperator": "Admin", "carNo": "浙-*****", "parkName": "马赛克", "inTime": "2018-0

2018-01-12 18:27:31 7501

原创 Springboot入口类浅析

Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法。@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解:该注解主要组合了以下注解:该注解主要组合了以下注解:@SpringBootConfiguration:这是Spring

2018-01-08 20:01:38 4612

原创 FastDFS上传图片java实例

前篇文章有对FastDFS的介绍,这篇文章写个案例演示下java怎么上传通过FastDFS上传图片。上传图片有以下几个步骤:1、加载配置文件,配置文件中的内容就是tracker服务的地址。配置文件内容:tracker_server=192.168.11.130:221222、创建一个TrackerClient对象。直接new一个。3、使用TrackerClient对

2018-01-08 18:56:21 666

原创 FastDFS 图片服务器

FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 架构分析:    FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker se

2018-01-08 18:38:52 280

原创 springBoot注解大全

一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration 等同于spring的XML配置文件;使用Java

2017-12-05 17:35:07 161

原创 Session一致性问题

什么是Session? What:Session在网络应用上表示“会话控制”,用于存储特定用户会话所需的属性及配置信息;Session又表示一个特定的时间间隔,指从登录进入系统到注销退出系统之间所经过的时间。 Why:http是无状态的协议,在动态web应用中,往往需要知道前面的操作和后面的操作是不是一个用户。也就是业务是需要有关联性的。 How:结合Session和浏览器Cookie,将

2017-11-15 21:45:39 545

原创 nginx上负载均衡简单配置

高并发下,通常会将同一个应用系统部署到多台服务器上,当请求到来时,一般会通过nginx的负载均衡机制(某种算法,比如随机)将请求转发到某一个服务器上。 可以通过nginx安装包下的conf文件夹下的nginx.conf文件配置达到负载均衡的目的,比如将某一个服务部署到两个tomcat下,将服务1部署到tomcat1中,服务2部署到tomcat2中,可以配置如下:

2017-11-12 17:38:53 188

原创 js跨域问题

基于安全的考虑,js是不能跨域请求数据的。 以下情况为跨域: www.aaa.com bbb.aaa.com 跨域,即域名不同 www.aaa.com www.aaa.com:8081 跨域,即端口不同 如何解决跨域问题:使用jsonp来解决跨域问题 jsonp是一个跨域解决方案,js跨域请求数据是不可以的,但是js跨域请求js脚本是可以的,可以把数据封装成一个js语句,跨域

2017-10-25 21:20:56 356

转载 mysql处理高并发,防止库存超卖

今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个问题,并希望以后这样的课程能多点。先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购一个商品。然而,作为

2017-10-24 11:07:04 255

转载 dubbo+zookeeper实现服务远程调用

dubbo场景:           随着网站应用规模的扩大,服务越来越多,服务间依赖关系变得错综复杂,服务的调用量越来越大,服务的容量问题暴露出来,dubbo在这种情况下诞生。dubbo是什么:           是一种分布式服务框架,解决上面面对的问题,先看dubbo架构图:节点角色说明:Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Regist

2017-10-18 20:56:06 1194

原创 linux上搭建redis伪集群

本文使用的linux为Centos6.4版本,redis版本为redis-3.0.0,假设您已经在Linux上安装了redis单机版,安装目录为/usr/local/redis下,redis-3.0.0.tar.gz解压的目录在/usr/local,本文只是演示怎么搭建集群 一、搭建集群前需要的环境 搭建集群需要使用到官方提供的ruby脚本。 需要安装ruby的环境。 安装ruby: yu

2017-10-16 19:12:04 981

原创 linux上安装nginx

1.安装环境 nginx是C语言开发,建议在linux上运行,本文使用Centos6.5作为安装环境。  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++  PCRE PCRE(Perl Compatible Regular Expressions)是一个Per

2017-10-09 20:09:29 341

转载 Redis之——Spring基于注解整合Redis

在《Redis之——Spring整合Redis》一文中,向大家介绍了如何将spring与Redis整合起来,但不是基于注解的形式,很多同学都希望能够通过注解的形式来简单的将Spring与Redis整合起来,这样,在使用的时候,只需要在相应的方法上加上注解,便可以使方法轻松的调用Redis的缓存。那么今天就来向大家介绍如何用基于注解的形式来整合Spring与Redis。另外,在之前的一篇《Memcac

2017-09-28 15:13:46 239

原创 Redis的key设计技巧

规则如下: 1.将表名设计成key的前缀,如user;2.第2段放置用于区分区key的字段–对应mysql中的主键的列名,如userid;3.第3段放置主键值,如2,3,4…., a , b ,c;4.第4段,写要存储的列名;比如: 用户表 user,有userid,username,passworde,email等字段,值分别为1,zhangsan,111111,zhangsan@163.co

2017-09-26 14:50:58 1783

原创 发送手机验证码在activeMQ中简单应用

在项目上经常遇到发送手机验证码的需求,一般通过产生验证码发送到消息中间件中,异步的去处理发送需求,由于ActiveMQ支持RESTful API,所以可以通过HTTP请求的方法发送消息到目的地。 注意点: 1. 必须是POST请求 2. 需要进行认证,在Header中添加Authorization 3. 必须指定目的地及目的地类型(本案例是queue) 4. 发送的内容使用body指

2017-09-26 13:44:22 1746

原创 Solr控制台索引维护-删除索引

删除索引根据id删除:http://localhost:8080/solr/core/update/?stream.body=<delete><id>id值</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true根据查询条件删除http://localhost:8080/solr/core/update/?stream.

2017-09-20 10:14:40 429

原创 Spring整合activeMQ

最近项目上一个应用就是处理完业务逻辑后要发短信通知客户是否处理成功,如果把这个发短信的业务也放到一起处理,可能会导致延迟等问题,所以采用异步处理的方式,把发短信的业务逻辑扔到activeMQ消息中间件中处理。消息生产者Service:package com.booth.common.service;import javax.jms.Destination;import javax.jms.JMS

2017-09-18 19:36:05 987

原创 JSON转化为java对象

将json对象转化为对应的java对象简单的方法: 举例如下:AA类,JSONObject json = new JSONObject();json.put("属性1", "值");json.put("属性2", "值");json.put("属性3", "值");AA a = JSON.toJavaObject(json, AA.class);需要以下maven依赖<dependenc

2017-09-18 15:46:32 868

转载 Solr 5.0.0配置中文分词器IK Analyzer

Solr版本和IK分词版本一定对应 (ps我版本没对应好弄了快俩小时了)只适合Solr 5.0.0版本1.下载IK分词器包链接: https://pan.baidu.com/s/1hrXovly 密码: 7yhs2.解压并把IKAnalyzer-5.0.jar 、solr-analyzer-extra-5.1.0.jar拷贝到tomcat/webapps/solr/WEB-INF/lib下

2017-09-18 10:25:11 632 1

转载 input[file]标签的accept=”image/*”属性响应很慢的解决办法

input[file]标签的accept=”image/*”属性响应很慢的解决办法 Front End 2016-10-08 input[file]标签的accept属性可用于指定上传文件的MIME类型。例如,想要实现默认上传图片文件的代码,代码可如下:<input type="fi

2017-09-07 12:46:54 558

原创 linux上zookeeper伪集群的搭建

在一台电脑上搭建伪集群可以解决多台服务器局限问题,在一台电脑上通过搭建伪集群,模拟分布式集群环境。下面为搭建zookeeper伪集群的详细步骤:第一步:在自己用户下新建文件夹zookeeper 命令:mkdir zookeeper 第二步:下载zookeeper 第三步:在zookeeper文件夹下解压: 第四步:在zookeeper文件夹下,新建文件夹zookeepe

2017-09-04 18:40:21 794

原创 java对象序列化为xml格式

xml可以用来标记数据,定义数据类型,可以允许用户对自己标记语言进行定义,xml可以用于web传输中数据的交换语言格式,独立于应用程序和供应商的结构化数据,和json一样独立于平台。将java对象序列化为xml格式部分关键代码如下:Person person = new Person();person.setName("zhangsan");person.setBirth(new Date()

2017-09-02 16:14:51 2288

原创 对象序列化成JSON格式

json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上进行方便的传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式。将java对象序列化为json格式关键代码如下:Person person = new Person();person.setName("zhangsan");person.setBirth(new Date());pers

2017-09-02 15:11:23 3267

原创 sudo: no valid sudoers sources found, quitting

在非root用户下操作只有root用户才有的权限的东西,需要用到sudo命令,但是一般使用sudo时会报以下错误: 此时编辑相关的配置文件/etc/sudoers, 本人在root用户下添加了如下: 其中:zhuls为普通用户 但是保存的时候发现该文件sudoers为只读,所以本人不管三七二十一,使用了:chmod 777 sudoers命令,将文件改为可读可写可执行的状态,于是可以

2017-08-31 18:38:46 5566

原创 对象转化为json字符串好用的方法

需要引入maven依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version></dependency>方法如下:String jsonString= JSON.toJSONString(对象);例如:public static

2017-08-29 09:22:49 288

原创 Map转化成url拼接请求参数

public String buildMap(Map<String, String> map) { StringBuffer sb = new StringBuffer(); if (map.size() > 0) { for (String key : map.keySet()) { sb.append(key

2017-08-28 10:34:10 10576

原创 java对象转化为Map

public Map<String, String> map2Bean(Object obj) { if (obj == null) { return null; } Map<String, String> map = new HashMap<String, String>(); try {

2017-08-28 10:22:12 682

原创 form表单转成json个数数据

var getFormData = function(form) { var formData = form.serializeArray(); var data = {}; $.each(formData, function() { data[this.name] = this.value; }); ret

2017-08-24 10:21:48 251

转载 Spring bean 通过实现 InitializingBean ,DisposableBean 接口实现初始化方法和销毁前操作

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种是:通过 在xml中定义init-method 和  destory-method方法第三种是: 通过bean实现InitializingBean和 DisposableBean接口1:定义相应类

2017-08-16 10:44:25 289

转载 zookeeper 安装 windows环境

1.   概述ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。  2.   安装&配置在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.3.6下载地

2017-08-09 21:50:01 919

原创 linux上安装zookeeper

第一步:下载 到 http://apache.fayea.com/zookeeper/下载 zookeeper-3.4.6: linux命令窗口输入: 第二步:解压 第三步:cd到/home/zhuls/zookeeper-3.4.6 文件夹下创建两个文件夹 data , logs 第四步: 将 zookeeper-3.4.6/conf 目录下的 zoo_sample.cf

2017-08-05 16:15:36 1084

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除