自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redisTemplate保存\x00\x00\x00问题

需要在保存的时候加上过期时间单位 TimeUnit

2019-05-21 12:46:12 2416

原创 dubbo微服务集群动态配置端口

同一个微服务作为集群注册到注册中心的时候,端口是唯一的,因此需要在运行时动态指定发布端口,在运行时加参数-Ddubbo.protocol.port=88888

2019-05-05 16:06:44 1133 1

原创 springboot 集成百度编辑器ueditor

最简单的方式集成百度编辑器1.下载百度编辑器源码2. springboot静态资源配置在resources下面。将ueditor的静态资源放入项目中如: 我的资源路径为:/resources/js/plugins/ueditor3.主要修改几个配置文件,首先修改 ueditor.config.js文件,主要修改serverUrl这个参数,这个参数就是你的项目请求路径,...

2018-07-27 20:38:38 12635 4

原创 springboot2.0版本配置自定义拦截器 WebMvcConfigurationSupport WebMvcConfigurer WebMvcConfigurerAdapter的坑

项目中想添加自定义的拦截器,一开始通过配置继承WebMvcConfigurerAdapter如:@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Autowired private AuthorizationInterceptor authorizationIntercep...

2018-07-24 12:43:50 18672 1

原创 dubbo配置文件必须在META-INF/spring下面

dubbo配置文件必须在META-INF/spring下面

2018-07-09 17:47:33 4570 1

原创 快速构建可运行的Spring-boot项目(Hello World)

spring-boot快速构建hello world创建Maven项目 配置pom.xmlproject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

2018-01-10 13:25:29 516

原创 spring-data-redis Repositories

SDR中通过支持Repository,操作对于model在缓存中的增删改查,非常方便。 1.Repository spring-data中对于数据库的增删改查的中央存储库。通过它可以对数据库(redis)进行操作。基本的实现为CrudRepository。 2.EnableRedisRepositories 要通过CrudRepository必须先开启支持Repository。

2018-01-05 17:18:27 13164 1

原创 Spring集成Spring-data-redis RedisCacheManager缓存源码分析

在项目中,一般我们会把服务层(service)的一些查询结果和一些数据进行缓存。缓存的种类有很多。这里进行redis作为缓存框架,进行一个缓存的配置。配置前需要先了解一些基本的知识在Spring中缓存主要有一个缓存接口(Cache)与缓存管理接口(CacheManager)。可以通过扩展这两个接口实现对应的缓存管理。redis就是这样。当然还有很多比如Guava等都对其进行了扩展。这里只看

2017-12-28 14:31:54 39777 4

原创 spring-data-redis ZSetOperations

/** * 给有序集合添加一个指定分数的成员 如果成员存在则覆盖 * * @param key must not be {@literal null}. * @param score the score. * @param value the value. * @return */ Boolean add(K key, V

2017-12-27 13:19:56 3601

原创 spring-data-redis HashOperations

/** * 从散列中删除给定的多个元素 * @param key 不能为null 散列的名称 * @param hashKeys 需要删除的keys集合 */ Long delete(H key, Object... hashKeys); /** * 判断散列中是否存在某个key */ Boolean hasKey(H

2017-12-27 10:58:49 17832

原创 spring-data-redis SetOperations

/** * 给集合key添加多个值,集合不存在创建后再添加 * * @param key 不能为null * @param values * @return */ Long add(K key, V... values); /** * 移除集合中多个value值 * @param key 不能为null

2017-12-27 10:04:28 7926 1

原创 spring-data-redis ListOperations

ListOperations

2017-12-26 16:21:45 7398

原创 spring-data-redis ValueOperations

ValueOperations 源码方法 /** *设置 key 的值为 value *如果key不存在添加key 保存值为value *如果key存在则对value进行覆盖 */ void set(K key, V value); /** * 设置 key 的值为 value * 其它规则与 set(K key, V valu

2017-12-26 15:16:15 19807

原创 linux安装redis与自动启动

1.下载redis稳定版本http://www.redis.cn/download.html2.运行命令解压 #tar-zxvf redis-3.2.11.tar.gz3.移动解压的redis到自己想要安装的目录mv redis-3.2.11 /usr/local/redis/ //后面自己想安装的目录4.进入redis安装目录执行make命令5.进入src目录执行 make install命令

2017-12-25 13:26:08 2765 1

原创 mysql主从复制配置

1.修改主数据库配置文件我的默认位置为/etc/my.cnf添加以下内容:server_id = 1 //主数据库必须配置为1.slave依次增加就行。log-bin=mysql-bin //配置二进制日志 必须配置innodb_flush_log_at_trx_commit=1binlog-do-db = master //配置需要同步的数据库 可以配置多个//binlog-do-db

2017-12-22 15:56:09 177

转载 linux安装mysql

本文参考地址:参考地址:https://www.cnblogs.com/jr1260/p/6590232.html linux(CentOS6.7) 环境Mysql 5.7.17安装教程分享给大家,供大家参考,具体内容如下:1系统约定 安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位

2017-12-22 13:36:56 660

原创 Spring配置多数据源在配置事务后无效完美解决方案

在配置多数据源的时候,我们在配置事物的时候,一般通过AOP来进行数据源切换。Spring的事务与数据源是绑定的。也就说,如果你开启了事务,那么数据源已经绑定了。那么这个时候,你在去切换数据源就无效了。也就是说要想有效,那么久要在事务开启之前就把数据源切换好。网上有一些解决办法:而我们知道在Spring中有一个注解@Order。我们只要吧数据源切面上面加上@Order(0)就能完美的让切换数据源在事务

2017-12-20 17:05:35 12489 11

原创 mysql 导入 employees_db-full-1.0.6

mysql导入示例employees数据库步骤: 1.官网下载测试数据库employees数据库下载链接。下载employees_db-full-1.0.6文件。 2.解压压缩文件,进入employees-db文件夹,拷贝所有文件至mysql安装目录bin目录下。 3.进入命令行运行 source employees.sql就可以等待完成

2017-09-09 17:24:44 2274

原创 Spring整合swagger

最近主要负责接口开发,每次都用以前用过的postman,发现配置参数这些比较麻烦,然后有人推荐用swagger。于是尝试将swagger整合到项目中。 配置//pomx.xml 添加依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</ar

2017-07-13 10:06:03 1431

原创 大型网站架构模式

本系列博客都是通过阅读《大型网站技术架构核心原理与案例分析》进行的阅读总结和记录网站架构模式 整体预览: 大型网站架构模式就是实现网站高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标的解决方案。常见的解决方案有: 1.分层 分层就是对整个网站的架构上做一个横向的切分。一般网站可以拆分为应用层、服务层、数据层。 但是对于一个大型网站而言,每个层次都可以进行进一步的拆分 如图: 2

2017-06-19 22:03:09 328

原创 SpringMVC Controller单元测试静态引入通配符问题

示例iimport static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;import static org.springframew

2017-06-19 10:51:22 1085

原创 ActiveMQ的安装和基本使用

下载并安装ActiveMQ服务器端 1.列表内容从[http://activemq.apache.org/download.html(http://activemq.apache.org/download.html)下载最新的ActiveMQ 2.直接解压,然后拷贝到需要要安装的位置就OK 启动ActiveMQ 1.普通启动:进入到安装目录下面的bin目录下 ./activemq st

2017-06-15 15:42:21 378

原创 Memcached分布式算法

Memcached的分布式方式 Memcached是要给分布式的缓存系统,但是Memcached的分布式是基于客户端的方式,Memcached的各个服务端并不会进行互相通信以共享信息。 Memcached的分布式客户端 客户端通过SockIOPool的servers参数来配置服务器地址列表,通过weight参数配置每台服务器的权重。在分布式的Memcached中,一个key只能存放在一台Mem

2017-06-13 11:22:46 523

原创 Spring集成Memcached与Memcached API

spring集成Memcached<! --memcached 客户端 SocketPool --> <bean id="memcachedPool " class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown">

2017-06-12 10:10:11 349

原创 Memcached内存分配机制—— Slab Allocator

Memcached数据存储方式 Memcached的内存数据存储方式被称为 Slab Allocator(对象缓存分配)。采取的思想可以理解为化整为零。就是将内存进行多层次的拆分,达到对对象和内存进行最精准的管理。拆分如下: - 先把内存拆分成很多个slab块。每个slab的大小都可以预先设置。上一篇文章中有对应的参数列表。 - slab的内存空间称为ipage,每个page的大小默认是

2017-06-07 11:21:09 917

原创 Memcached的基本参数

Memcached特点 Memcached是一个开源,分布式,高性能的内存对象缓存系统。Memcached是纯内存的对象缓存系统,也就是说它所有数据都以key/value的方式缓存在内存中,性能比较好。当然这是有点也可以说是缺点。因为这种方式就意味着它不能对数据进行持久化。系统重启就会丢失所有数据。协议简单(基于文本行),功能强大。基于libevent的事件处理,无阻塞通信,对内存的读写非常

2017-06-05 10:51:31 1739

原创 linux下安装Memcached

Memcached安装 下载并安装Memcached服务器端需要安装libevent,去http: //libevent. org/下载 .然后: . configure –prefi x=指定安装的路径 ,make , make install libevent是个程序库,它将Linux的epol l 、BSD类操作系统的kqueue等事件 处理功能封装成统一的接口,具有很高的性能。去

2017-06-01 10:51:32 266

原创 一篇文章理解JMS

JMSJMS是什么JMS Java Message Service Java消息服务。是JAVA EE中的一个技术,JMS定义了JAVA中访问消息中间件的接口。类似JDBC。定义了接口,并不具体实现。实现JMS接口消息的中间件称为JMS Provider.例如:ActiveMQ.JMS基本概念JMS MessageJMS Message JMS消息,JMS消息由三部分组成 1.消息头:每个消

2017-05-27 10:33:44 427

原创 win8在应用与桌面自动切换

今天系统升级后,系统总是频繁的在桌面和当前应用中不停的切换。 最终解决办法如下:将这个服务禁止,问题解决

2017-05-19 14:45:16 423

原创 Invalid bound statement (not found)

在MyBatis使用过程中可能会遇到 Invalid bound statement (not found) 异常,一般情况而言都是配置有所忽略,但有一种情况就是配置文件没有扫描到 图中我们配置mapperLocations一般扫描classpath下的mapper.xml文件。把classpath改成classpath*就行了。

2017-05-07 04:04:15 335

转载 Oracle 常用性能监控SQL语句

原文:http://panhongbin100.iteye.com/blog/1596414 1. –查看表锁 SELECT * FROM SYS.V_SQLAREAWHEREDISKREADS>100;2.–监控事例的等待SELECTEVENT,SUM(DECODE(WAITTIME,0,0,1))“Prev”,SUM(DECODE(WAITTIME,0,1,0))“Curr”,COUNT(

2017-05-03 17:11:39 584

原创 JAVA多线程之——Future与Callable

Futrue与Callable在学习了多线程之后,可以知道线程的实现方式是通过继承Thread或者实现Runnable接口,当线程被启动后,会执行run方法。都知道run方法是一个void方法,也就是说线程执行完毕之后,不会返回任何东西。那么,如果我们想得到线程执行的结果怎么呢?这就要用到JUC中的Futrue与Callable了。 Callable public interface Callab

2017-04-08 17:29:51 325 1

原创 JAVA多线程之——常用线程池

线程池学习了线程池的基本原理后,可以理解线程池的类型控制,主要是通过中心池大小,和最大线程池大小,以及存储工作任务的队列决定。JDK中为我们封装了常用的四种线程池。 在JDK帮助文档中,有如此一段话: “强烈建议程序员使用较为方便的Executors工厂方法Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedTh

2017-04-08 13:40:19 410

原创 JAVA多线程之——线程池

线程池线程池顾名思义,就是一个放置线程的池子。就跟数据库连接池差不多。线程池通过对并发线程的控制,能有效的节省系统资源的浪费,提高系统的性能。 学习线程池,先了解一下线程池的一个基本结构: Executorpublic interface Executor { void execute(Runnable command);}Executor是一个接口,其中只有一个方法,就是execu

2017-04-06 21:42:59 304

原创 JAVA多线程之——Semaphore

Semaphore一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 其实Semaphore就是维护了一个共享锁,通过state来决定同时可以多少个线程获取

2017-04-05 22:00:52 376

原创 JAVA多线程之——CyclicBarrier

CyclicBarrierCyclicBarrier : N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。 CountDownLatch是某一个线程等待一个或者N个线程。 主体不同,CountDownLatch的主体是某一个线程。它是要一个或者多个线程完成某一个动作之后自己执行。这些线程互相之间是不等待的。 CyclicBaarier 主体是N个线程,就是说大家在某一个点上互相等

2017-04-05 20:39:42 302

原创 JAVA多线程之——CountDownLatch

CountDownLatch在学习线程基本知识的时候,学习过一个线程的join方法,该方法就是让当前线程等待,直到当前线程中调用了join方法的线程执行完毕,再执行本线程。加入在导入一个Excel的时候,有多个sheet,那么可能我们就考虑用多个线程分别读取sheet然后保存数据库,再记录日志,然后通知用户导入成功。先看join实现:public class JoinTest {public sta

2017-04-05 19:57:25 546

原创 JAVA多线程之——ConcurrentLinkedQueue

ConcurrentLinkedQueueConcurrentLinkedQueue是一个非阻塞的无界队列。非阻塞和阻塞区别。首先了解一下JAVA中多线程的同步机制基本采用三种方式:volatile 轻量级的线程同步,不会引起上下文的切换和线程调度,提供内存的可见性,但不保证原子性。CAS 轻量级的线程同步,不会引起上下文的切换和线程调度,提供内存的可见性和原子性。内部锁(synchro

2017-04-04 18:17:02 450 1

原创 JAVA多线程之——LinkedBlockingQueue

LinkedBlockingQueueLinkedBlockingQueue队列跟ArrayBlockingQueue一样都实现了BlockingQueue。因此同样是阻塞队列,有三种删除和三种添加的方法。LinkedBlockingQueue的底层是基于链表实现。ArrayBlockingQueue通过一个锁和锁的两个条件对象保证并发的安全性,LinkedBlockingQueue通过两个锁和每个

2017-04-04 13:55:45 942

原创 JAVA多线程之——ArrayBlockingQueue

ArrayBlockingQueueArrayBlockingQueue队列是BlockingQueue的一个子类.block是阻塞的意思。它是一个阻塞队列,array说明它的底层是基于数组实现。数组是有大小的,所以它是一个有(边)界的队列。综上,ArrayBlockingQueue是一个有界的阻塞队列。 BlockingQueue BlockingQueue接口有三个删除方法和三个添加方法

2017-04-03 22:47:44 570

空空如也

空空如也

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

TA关注的人

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