- 博客(66)
- 收藏
- 关注
原创 dubbo微服务集群动态配置端口
同一个微服务作为集群注册到注册中心的时候,端口是唯一的,因此需要在运行时动态指定发布端口,在运行时加参数-Ddubbo.protocol.port=88888
2019-05-05 16:06:44
1155
1
原创 springboot 集成百度编辑器ueditor
最简单的方式集成百度编辑器1.下载百度编辑器源码2. springboot静态资源配置在resources下面。将ueditor的静态资源放入项目中如: 我的资源路径为:/resources/js/plugins/ueditor3.主要修改几个配置文件,首先修改 ueditor.config.js文件,主要修改serverUrl这个参数,这个参数就是你的项目请求路径,...
2018-07-27 20:38:38
12751
4
原创 springboot2.0版本配置自定义拦截器 WebMvcConfigurationSupport WebMvcConfigurer WebMvcConfigurerAdapter的坑
项目中想添加自定义的拦截器,一开始通过配置继承WebMvcConfigurerAdapter如:@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Autowired private AuthorizationInterceptor authorizationIntercep...
2018-07-24 12:43:50
18791
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
527
原创 spring-data-redis Repositories
SDR中通过支持Repository,操作对于model在缓存中的增删改查,非常方便。 1.Repository spring-data中对于数据库的增删改查的中央存储库。通过它可以对数据库(redis)进行操作。基本的实现为CrudRepository。 2.EnableRedisRepositories 要通过CrudRepository必须先开启支持Repository。
2018-01-05 17:18:27
13300
1
原创 Spring集成Spring-data-redis RedisCacheManager缓存源码分析
在项目中,一般我们会把服务层(service)的一些查询结果和一些数据进行缓存。缓存的种类有很多。这里进行redis作为缓存框架,进行一个缓存的配置。配置前需要先了解一些基本的知识在Spring中缓存主要有一个缓存接口(Cache)与缓存管理接口(CacheManager)。可以通过扩展这两个接口实现对应的缓存管理。redis就是这样。当然还有很多比如Guava等都对其进行了扩展。这里只看
2017-12-28 14:31:54
39869
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
3624
原创 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
17880
原创 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
7999
1
原创 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
19897
原创 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
2781
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
195
转载 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
687
原创 Spring配置多数据源在配置事务后无效完美解决方案
在配置多数据源的时候,我们在配置事物的时候,一般通过AOP来进行数据源切换。Spring的事务与数据源是绑定的。也就说,如果你开启了事务,那么数据源已经绑定了。那么这个时候,你在去切换数据源就无效了。也就是说要想有效,那么久要在事务开启之前就把数据源切换好。网上有一些解决办法:而我们知道在Spring中有一个注解@Order。我们只要吧数据源切面上面加上@Order(0)就能完美的让切换数据源在事务
2017-12-20 17:05:35
12614
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
2312
原创 Spring整合swagger
最近主要负责接口开发,每次都用以前用过的postman,发现配置参数这些比较麻烦,然后有人推荐用swagger。于是尝试将swagger整合到项目中。 配置//pomx.xml 添加依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</ar
2017-07-13 10:06:03
1445
原创 大型网站架构模式
本系列博客都是通过阅读《大型网站技术架构核心原理与案例分析》进行的阅读总结和记录网站架构模式 整体预览: 大型网站架构模式就是实现网站高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标的解决方案。常见的解决方案有: 1.分层 分层就是对整个网站的架构上做一个横向的切分。一般网站可以拆分为应用层、服务层、数据层。 但是对于一个大型网站而言,每个层次都可以进行进一步的拆分 如图: 2
2017-06-19 22:03:09
339
原创 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
1095
原创 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
385
原创 Memcached分布式算法
Memcached的分布式方式 Memcached是要给分布式的缓存系统,但是Memcached的分布式是基于客户端的方式,Memcached的各个服务端并不会进行互相通信以共享信息。 Memcached的分布式客户端 客户端通过SockIOPool的servers参数来配置服务器地址列表,通过weight参数配置每台服务器的权重。在分布式的Memcached中,一个key只能存放在一台Mem
2017-06-13 11:22:46
542
原创 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
367
原创 Memcached内存分配机制—— Slab Allocator
Memcached数据存储方式 Memcached的内存数据存储方式被称为 Slab Allocator(对象缓存分配)。采取的思想可以理解为化整为零。就是将内存进行多层次的拆分,达到对对象和内存进行最精准的管理。拆分如下: - 先把内存拆分成很多个slab块。每个slab的大小都可以预先设置。上一篇文章中有对应的参数列表。 - slab的内存空间称为ipage,每个page的大小默认是
2017-06-07 11:21:09
944
原创 Memcached的基本参数
Memcached特点 Memcached是一个开源,分布式,高性能的内存对象缓存系统。Memcached是纯内存的对象缓存系统,也就是说它所有数据都以key/value的方式缓存在内存中,性能比较好。当然这是有点也可以说是缺点。因为这种方式就意味着它不能对数据进行持久化。系统重启就会丢失所有数据。协议简单(基于文本行),功能强大。基于libevent的事件处理,无阻塞通信,对内存的读写非常
2017-06-05 10:51:31
1756
原创 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
277
原创 一篇文章理解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
449
原创 Invalid bound statement (not found)
在MyBatis使用过程中可能会遇到 Invalid bound statement (not found) 异常,一般情况而言都是配置有所忽略,但有一种情况就是配置文件没有扫描到 图中我们配置mapperLocations一般扫描classpath下的mapper.xml文件。把classpath改成classpath*就行了。
2017-05-07 04:04:15
357
转载 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
600
原创 JAVA多线程之——Future与Callable
Futrue与Callable在学习了多线程之后,可以知道线程的实现方式是通过继承Thread或者实现Runnable接口,当线程被启动后,会执行run方法。都知道run方法是一个void方法,也就是说线程执行完毕之后,不会返回任何东西。那么,如果我们想得到线程执行的结果怎么呢?这就要用到JUC中的Futrue与Callable了。 Callable public interface Callab
2017-04-08 17:29:51
340
1
原创 JAVA多线程之——常用线程池
线程池学习了线程池的基本原理后,可以理解线程池的类型控制,主要是通过中心池大小,和最大线程池大小,以及存储工作任务的队列决定。JDK中为我们封装了常用的四种线程池。 在JDK帮助文档中,有如此一段话: “强烈建议程序员使用较为方便的Executors工厂方法Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedTh
2017-04-08 13:40:19
417
原创 JAVA多线程之——线程池
线程池线程池顾名思义,就是一个放置线程的池子。就跟数据库连接池差不多。线程池通过对并发线程的控制,能有效的节省系统资源的浪费,提高系统的性能。 学习线程池,先了解一下线程池的一个基本结构: Executorpublic interface Executor { void execute(Runnable command);}Executor是一个接口,其中只有一个方法,就是execu
2017-04-06 21:42:59
315
原创 JAVA多线程之——Semaphore
Semaphore一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 其实Semaphore就是维护了一个共享锁,通过state来决定同时可以多少个线程获取
2017-04-05 22:00:52
407
原创 JAVA多线程之——CyclicBarrier
CyclicBarrierCyclicBarrier : N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。 CountDownLatch是某一个线程等待一个或者N个线程。 主体不同,CountDownLatch的主体是某一个线程。它是要一个或者多个线程完成某一个动作之后自己执行。这些线程互相之间是不等待的。 CyclicBaarier 主体是N个线程,就是说大家在某一个点上互相等
2017-04-05 20:39:42
311
原创 JAVA多线程之——CountDownLatch
CountDownLatch在学习线程基本知识的时候,学习过一个线程的join方法,该方法就是让当前线程等待,直到当前线程中调用了join方法的线程执行完毕,再执行本线程。加入在导入一个Excel的时候,有多个sheet,那么可能我们就考虑用多个线程分别读取sheet然后保存数据库,再记录日志,然后通知用户导入成功。先看join实现:public class JoinTest {public sta
2017-04-05 19:57:25
568
原创 JAVA多线程之——ConcurrentLinkedQueue
ConcurrentLinkedQueueConcurrentLinkedQueue是一个非阻塞的无界队列。非阻塞和阻塞区别。首先了解一下JAVA中多线程的同步机制基本采用三种方式:volatile 轻量级的线程同步,不会引起上下文的切换和线程调度,提供内存的可见性,但不保证原子性。CAS 轻量级的线程同步,不会引起上下文的切换和线程调度,提供内存的可见性和原子性。内部锁(synchro
2017-04-04 18:17:02
478
1
原创 JAVA多线程之——LinkedBlockingQueue
LinkedBlockingQueueLinkedBlockingQueue队列跟ArrayBlockingQueue一样都实现了BlockingQueue。因此同样是阻塞队列,有三种删除和三种添加的方法。LinkedBlockingQueue的底层是基于链表实现。ArrayBlockingQueue通过一个锁和锁的两个条件对象保证并发的安全性,LinkedBlockingQueue通过两个锁和每个
2017-04-04 13:55:45
960
原创 JAVA多线程之——ArrayBlockingQueue
ArrayBlockingQueueArrayBlockingQueue队列是BlockingQueue的一个子类.block是阻塞的意思。它是一个阻塞队列,array说明它的底层是基于数组实现。数组是有大小的,所以它是一个有(边)界的队列。综上,ArrayBlockingQueue是一个有界的阻塞队列。 BlockingQueue BlockingQueue接口有三个删除方法和三个添加方法
2017-04-03 22:47:44
585
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人