自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA反射解析-getDeclaredMethod方法

解析反射类java.lang.Class中的属性和方法1、public Method getDeclaredMethod(String name, Class<?>… parameterTypes)常用反射获取对象的方法Class<? extends UserController> clazz = userController.getClass();//<1>处代码在获取到Class对象之后,便可以获取有参方法① Method method = clazz.

2020-10-25 01:10:05 25446 2

原创 代理模式

1、代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象功能2、被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象3、代理模式有不同的形式,主要有三种静态代理、动态代理和cglib代理静态代理:静态代理在使用时,需要定义接口或者父类,被代理对象(即目标对象)与代理对象一起实现相同的接口或者继承相同的父类应用实例:1、定义一个接口:ITeacherDao2、目标对象Teac

2020-10-14 08:18:08 153

原创 解决git@github.com: Permission denied (publickey). Could not read from remote repository.

今天在github上看到一个比较感兴趣的项目,于是想下载研究一下,CheckOut时抛了以下异常原因分析Permission denied (publickey) 没有权限的publickey ,出现这错误一般是以下两种原因客户端与服务端未生成 ssh key客户端与服务端的ssh key不匹配找到问题的原因了,解决办法也就有了,重新生成一次ssh key ,服务端也重新配置一次即可。客户端生成ssh keyssh-keygen -t rsa -C "youremail@example.

2020-09-19 00:29:40 752

原创 Java8中Stream的常用姿势

@Testpublic void streamTest() { Student stu1 = new Student(01, 19, "张三"); Student stu2 = new Student(02, 23, "李四"); Student stu3 = new Student(01, 28, "王五"); Student stu4 = new Student(01, 23, "赵六"); List<Student> list = new Arra

2020-08-02 01:25:38 344

原创 6、Nginx原理解析

1、master和worker2、worker如何进行工作的3、一个master和多个woker的好处(1) 可以使用nginx -s reload热部署。首先,对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。当然,worker进程的异常退出,肯定是程序有bug了,异常退出,会导致

2020-06-26 14:15:26 276 2

原创 5、Nginx配置高可用集群

1、什么是nginx高可用(1) 需要两台nginx服务器。(2) 需要keepalived(3) 需要虚拟ip2、配置高可用的准备工作(1) 需要两台服务器192.168.17.129 和192.168.17.1314(2) 在两台服务器安装nginx.(3) 在两合服务器安装keepalived.3、在两台服务器安装keepalived使用yum命令进行安装$ yum install keepalived$ rpm -q -a keepalived #查看是否已经安装上

2020-06-26 14:12:01 793

原创 4、Nginx动静分离

动静分离通过location指定不同的后缀名实现不同的请求转发。通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体Expires定义: 是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用Expires来缓存),如果设置3d, 表示在这3天之内访问这个URL, 发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返

2020-06-26 14:04:29 199

原创 3、Nginx负载均衡

负载均衡1、实现效果(1) 浏览器地址栏输入地址http://192.168.xxx.xxx/edu/index.html, 负载均衡效果,平均到8080和8081端口中。2、准备工作(1) 准备两台tomcat服务器,一 台8080, 一台8081(2) 在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面index.html,用于测试。3、在nginx的配置文件中进行负载均衡的配置4、效果负载分配策略在linux下有Nginx、LVS、 H

2020-06-26 13:56:36 191

原创 2、Nginx反向代理

访问nginx,代理 tomcat修改nginx配置文件, nginx.conf反向代理1、实现效果使用nginx反向代理,根据访问的路径跳转到不同端口的服务中。nginx.监听端口为9001,。访问http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8081访问http://127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:80822、准备工作(1) 准备两个tomcat服务器,一个8080端口,一个8081端口(2) 创建文件

2020-06-26 13:51:23 214

原创 1、Nginx简介及安装

Nginx 简介Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好 Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。代理a. 正向代理在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问b. 反向代理反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访

2020-06-26 13:37:56 308

原创 MacOS解决Docker启动Tomcat容器,访问404问题

使用docker命令启动Tomcat容器docker run -d -p 8888:8080 tomcat查看已经启动的容器docker ps3. 使用8888端口访问Tomcat失败4. 使用如下命名进入docker容器中Tomcat的目录docker exec -it a6f78249bab9(启动的Tomcat容器的容器id-——步骤2) /bin/bash5. 使用命令查看当前文件夹内的所有文件ls -l进入webapps文件夹下cd webapps显.

2020-06-25 22:58:20 692 3

原创 win10中配置mysql8.0主从数据库

第一步 创建两个mysql数据服务,并启动两个mysql服务。1)复制安装的mysql文件夹2)复制安装的ProgramData下面的mysql文件夹修改my.ini文件中的端口号(复制的my.ini改成3307)把复制修改之后的数据库再windows10安装服务。(用管理员启动cmd窗口,并切换到复制mysql文件夹的bin目录下,执行命令 mysqld install mysqls1 --defaults-file="C:\ProgramData\MySQL\MySQL Serve

2020-06-07 13:05:32 528

原创 Springboot监控之一:SpringBoot四大神器之Actuator之2--spring boot健康检查对Redis的连接检查的调整

因为项目里面用到了redis集群,但并不是用spring boot的配置方式,启动后项目健康检查老是检查redis的时候状态为down,导致注册到eureka后项目状态也是down。问下能不能设置spring boot不检查 redis的健康状态"redis": { "status": "DOWN", "error": "org.springframework.data.r...

2020-05-02 22:50:41 1576

原创 System.arrayCopy 的作用

下面是 System.arrayCopy的源代码声明 :public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)代码解释:  Object src : 原数组 int srcPos : 从元数据的起始位置开始  Object dest : 目标数组  int ...

2020-05-02 22:48:42 2196

原创 java的左移运算符和右移运算符

java移位运算小技巧左移一位相当于乘以2的1次方,左移n位就相当于乘以2的n次方。右移一位相当于除以2的1次方,右移n位就相当于除以2的n次方。比如10 << 1 = 2010 << 3 = 806 >> 1 = 36 >> 2 = 1想要深入理解移位运算,就一定要对计算机的原码、反码、补码非常熟练。你要知道3个事(划重点):...

2020-05-02 22:46:22 560

原创 常用的docker基础命令

docker images -a:列出本地所有的镜像-q:只显示镜像ID–digests:显示镜像的摘要信息–no–:显示完成的镜像信息docker search XX:查询镜像docker pull XX :拉某个镜像docker rmi -f XX :删除某个镜像docker rmi -f XX XX :删除多个镜像docker run -it: 容器ID 进入dock...

2020-04-18 11:27:22 152

原创 Mybatis源码(执行篇)

前言上一篇文章提到了MyBatis是如何构建配置类的,也说了MyBatis在运行过程中主要分为两个阶段,第一是构建,第二就是执行,所以这篇文章会带大家来了解一下MyBatis是如何从构建完毕,到执行我们的第一条SQL语句的。入口(代理对象的生成)public static void main(String[] args) throws Exception { /***********...

2020-04-18 11:16:41 304

原创 Mybatis源码解析(构造篇)

今天会给大家分享我们常用的持久层框架——MyBatis的工作原理和源码解析,欢迎探讨!说实话MyBatis是我第一个接触的持久层框架,在这之前我也没有用过Hibernate,从Java原生的Jdbc操作数据库之后就直接过渡到了这个框架上,当时给我的第一感觉是,有一个框架太方便了。举一个例子吧,我们在Jdbc操作的时候,对于对象的封装,我们是需要通过ResultSet.getXXX(index)...

2020-04-18 11:15:56 123

原创 Mybatis源码解析(缓存篇)

前言大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:Mybatis源码解析(构造篇)和 Mybatis源码(执行篇),主要说明了MyBatis是如何将我们的xml配置文件构建为其内部的Configuration对象和MappedStatement对象的,然后在第二篇我们说了构建完成后MyBatis是如何一步一步地执行我们的SQL语句并且对结果集进行封装的。那么这篇作为MyB...

2020-04-18 11:14:54 202

原创 详解构造者模式

在工作中我们经常遇到参数比较多的构造函数,构造函数的参数可能很快就会失控,而且可能很难理解每个参数。如果将来你想添加参数,或者改变参数,这个参数列表还可能更快增长,很容易出错。例如生成下面的“英雄”角色,选择职业、性别、头发颜色等,角色的生成就变成了一个一步一步的过程,当所有的选择都准备好了,这个过程就完成了。public Hero(Profession profession, String n...

2020-04-18 11:10:26 305

原创 详解双重判定下的单例模式

单例模式:保证一个类只有一个实例,并且提供一个可以访问的全局入口。优点:节省内存、节省计算、方便管理应用举例:无状态的工具类(日志工具、字符串工具)、全局信息类(全局记数、环境变量)常见的五种写法:从简单到难递进######饿汉式写法:优点:类装载的时候就完成了初始化,避免了线程同步的问题。缺点:从始至终没有使用实例,造成内存浪费。/** * 饿汉式: */public cla...

2020-04-17 23:44:53 964

空空如也

空空如也

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

TA关注的人

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