摘要: 数据表示例 1.NOT IN 结果集为空 ①SELECT class_no FROM t_student; 结果为: ②SELECT * FROM t_student where class_no not in (SELECT class_no FROM t_student); 结论:查询语句中no 阅读全文
posted @ 2019-04-29 01:09 HappyCowboy 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 使用DruidDataSource数据库连接池对密码加密首先我们得下载一个druid-1.0.16.jar的包其次键入命令 java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools your_password这时候会生 阅读全文
posted @ 2018-10-08 13:52 HappyCowboy 阅读(2584) 评论(0) 推荐(0) 编辑
摘要: 在使用集合的过程中,我们经常会有遍历集合元素,删除指定的元素的需求,而对于这种需求我们往往使用会犯些小错误,导致程序抛异常或者与预期结果不对,本人很早之前就遇到过这个坑,当时没注意总结,结果前段时间又遇到了这个问题,因此,总结下遍历集合的同时如何删除集合中指定的元素; 1.错误场景复原 或者如下代码 阅读全文
posted @ 2018-07-15 12:46 HappyCowboy 阅读(5152) 评论(0) 推荐(0) 编辑
摘要: 在Java应用开发过程中,我们经常会遇到OutOfMemoryError异常,而不知道是啥原因,此时就要知道Java的内存模型啦,找了些资料,把Java内存模型总结一下;Java的内存结构,也就是运行时的数据区域;Java虚拟机在执行Java程序的过程中,会把它管理的内存划分为几个不同的数据区域,这 阅读全文
posted @ 2018-07-08 00:32 HappyCowboy 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1.基本信息如下 服务器地址 192.168.73.129 副本集名称 rs 容器节点及端口映射 m0 37017:27017 m1 47017:27017 m2 57017:27017 注:机器环境安装docker 2.部署步骤 2.1下载mongo镜像 docker pull mongo 2.2 阅读全文
posted @ 2018-07-04 17:48 HappyCowboy 阅读(5922) 评论(1) 推荐(1) 编辑
摘要: 1.安装副本集介绍 副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。 阅读全文
posted @ 2018-07-04 16:58 HappyCowboy 阅读(4668) 评论(0) 推荐(1) 编辑
摘要: 1.集群高可靠 ①搭建kafka集群(略) ②重点配置项(每个broker配置相同,只有broker.id不一样) broker.id=1 当前机器在集群中的唯一标识,和zookeeper的myid性质一样 listeners=PLAINTEXT://10.22.0.13:9092 最好用真实的IP 阅读全文
posted @ 2018-07-03 16:43 HappyCowboy 阅读(259) 评论(0) 推荐(1) 编辑
摘要: ①下载安装包 mongodb-linux-x86_64-rhel62-3.6.3.tgz ②解压: tar zxvf mongodb-linux-x86_64-rhel62-3.6.3.tgz ③重命名:mv mongodb-linux-x86_64-rhel62-3.6.3/ mongodb-3. 阅读全文
posted @ 2018-05-27 12:24 HappyCowboy 阅读(1875) 评论(0) 推荐(0) 编辑
摘要: 实现定时任务线程有如下三种方式: ①普通线程死循环 ②使用定时器timer ③使用定时调度线程池ScheduledExecutorService 阅读全文
posted @ 2018-03-01 17:05 HappyCowboy 阅读(9066) 评论(0) 推荐(0) 编辑
摘要: 1.服务提供者1.1服务注册服务提供者启动时,会通过rest请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。Eureka Server接收到请求后,将元数据信息存储在一个双层结构的Map中,其中与第一层的key是服务名,第二层的key是具体的服务实例名eure 阅读全文
posted @ 2018-02-27 16:11 HappyCowboy 阅读(2056) 评论(1) 推荐(0) 编辑
摘要: 1.基础架构 eueka按逻辑上可以划分为3个模块,eureka-server,service-provider,service-consumereureka-server:服务端,提供服务注册和发现eureka-client-service-provider:服务端,服务提供者,通过http re 阅读全文
posted @ 2018-02-27 16:05 HappyCowboy 阅读(19112) 评论(0) 推荐(0) 编辑
摘要: 1.基本概念 日志门面(接口):commons logging ; slf4j ; 日志具体实现:log4j ; logback(Spring 系列在使用) ; log4j2(添加了异步logger的实现,提高了性能) 2.具体使用(门面:slf4j 实现 : log4j2) ①添加maven依赖 阅读全文
posted @ 2018-02-27 15:22 HappyCowboy 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 基本环境:centos7.0 jdk1.8 tomcat7 1.下载tomcat,解压到指定目录 例如:/home/test/apache-tomcat-7.0.81 2.生成证书 首先进入JAVA_HOME的bin目录下输入如下代码: cd /usr/java/jdk1.8.0_121/bin/ 阅读全文
posted @ 2017-09-28 16:52 HappyCowboy 阅读(3161) 评论(0) 推荐(0) 编辑
摘要: 本人在中间件研发组(主要开发RPC),近期遇到一个需求:RPC基于http协议通过netty支持文件上传下载 经过一系列的资料查找学习,终于实现了该功能 通过netty实现文件上传下载,主要在编解码时处理,具体的代码如下: ①文件上传 ②文件下载 ③其他辅助方法 阅读全文
posted @ 2017-09-28 11:08 HappyCowboy 阅读(1977) 评论(0) 推荐(0) 编辑
摘要: 1.安装zookeeper(3.4.6) 安装过程(略) 启动zookeeper ./bin/zkServer.sh start 或者bin/zookeeper-server-start.sh conf/zoo.cfg netstat -tunlp|grep 2181 #查看zookeeper端口 阅读全文
posted @ 2017-09-27 17:06 HappyCowboy 阅读(8601) 评论(0) 推荐(1) 编辑
摘要: 1 安装环境准备 1.1 准备环境清单 以下是基本环境清单列表: 软件名称 版本号 说明信息 Linux CentOS 6.7 部署机器只需为Linux系统即可,无严格要求 1.2 安装gcc和gcc++ 该步骤使用root用户直接安装即可,系统必须 yum能使用。 yum -y install g 阅读全文
posted @ 2017-09-27 15:54 HappyCowboy 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中, 还包括如下三小类 反射模式 工厂方法模式(本文重点) Factory Bean模式 其中反射模式 阅读全文
posted @ 2017-03-29 10:43 HappyCowboy 阅读(8832) 评论(0) 推荐(3) 编辑
摘要: 1:创建一个Maven工程,pom.xml文件如下: 2:配置文件如下: log4j.properties: rabbitMQ.xml: application-context.xml: 3:创建消费者和生产者: Proceducer.java : Consumer.java: 4:测试 创建实体类 阅读全文
posted @ 2016-12-12 11:25 HappyCowboy 阅读(7973) 评论(0) 推荐(0) 编辑
摘要: 1. 文件相关 ll:列出当前目录下相关文件和子目录 cd+目录:进入下一级目录 cd:返回主目录 cd -:返回上级目录 tough+文件名:创建文件 rm+文件名:删除文件 rm –rf +文件夹名:强制删除文件 mkdir +目录名/子目录:目录名必须存在 rmdir+目录名:删除当前目录,当 阅读全文
posted @ 2016-10-31 14:21 HappyCowboy 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 1.Redis Windows安装 下载链接:https://github.com/dmajkic/redis/downloads 根据自己的需要选择32位,64位的redis,然后存到一个指定的目录,比如:F:\Redis ① 打开cmd ,进入F:\Redis ② 执行redis-server. 阅读全文
posted @ 2016-08-02 18:08 HappyCowboy 阅读(596) 评论(2) 推荐(1) 编辑
摘要: 1.top命令查看线程占据的CPU 注意:上面行的cpu是多个内核的平均CPU,不可能超过100% 下面的cpu是每个进程实际占用的cpu,可能超过100% 备注:查看多个内核cpu,只需要在输入top后,输入1 2.查看进程下每个线程的资源使用情况 top -Hp pid(进程最高的那个进程ID) 阅读全文
posted @ 2020-07-24 08:28 HappyCowboy 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 1.打包版本区别 SNAPSHOT 快照版本(开发阶段,不稳定,容易出现bug)RELEASE 正式版本(外部依赖使用阶段,稳定,很少出现bug)Tag :标记每次代码提交的版本(比较稳定,类似分支) 2.release plugin 插件的作用 ①检查本地有无未提交的代码 ②检查项目是否有快照版本 阅读全文
posted @ 2019-02-19 14:16 HappyCowboy 阅读(3619) 评论(0) 推荐(0) 编辑
摘要: builder模式在Java中还是随处可见的,尤其是在阅读框架源码的过程中,为什么要采用builder模式编写代码呢?因为它有诸多好处,比如1.可读性强这是一段比较没有追求的开发同学经常的一种写法: 假如,他把这段代码换成Builder模式,那就变成了这样: 是不是看着非常简洁,写着也特别的享受! 阅读全文
posted @ 2018-10-29 23:27 HappyCowboy 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 前言 我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。 例如我想要在SpringBoot项目中集成Redis,那么我只 阅读全文
posted @ 2018-09-04 16:53 HappyCowboy 阅读(487) 评论(0) 推荐(0) 编辑
摘要: Java每个对象都有一把锁,当前进程使用对象锁1,没有释放该锁,又想要去获取另一把对象锁2,而对象锁2被另外一个线程持有,没有释放,这就很容易出现死锁 1.死锁实例 分析:线程1持有object1的锁,同时又想去获取object2的锁,而此时线程2又持有object2的锁没有释放,又想去获取obje 阅读全文
posted @ 2018-07-15 23:48 HappyCowboy 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 1.Java线程状态 1.1 线程主要状态 ①初始(NEW):新创建了一个线程对象,但还没有调用start()方法。②运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的成为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start 阅读全文
posted @ 2018-07-15 22:42 HappyCowboy 阅读(16694) 评论(0) 推荐(7) 编辑
摘要: 在Java程序的单元测试中常用的mock工具有Mockito和EasyMock。但是这两种mock工具都无法实现对静态、final、私有方法或类的mock。因此有了功能强大的PowerMock工具。PowerMock并不是一个独立、全新的工具而是在Mockito和EasyMock的基础上进行的扩展, 阅读全文
posted @ 2018-07-10 18:57 HappyCowboy 阅读(1060) 评论(0) 推荐(1) 编辑