java
snkkka163
这个作者很懒,什么都没留下…
展开
-
Spring Security 源码分析
Spring Security 源码分析1.Spring Security基本执行流程分析:现在假设我们要发送一个新的请求给我们的项目,默认我们的项目已经配置了Spring Security这个请求会先进入1.UsernamePasswordAuthenticationFilter: 验证我们的请求中是否有这个过滤器所需要的信息,比如说账号密码如果说带了账号密码,那将会尝试使用这些参数进行登录,如果没有带这个过滤器所需要的参数,那就往下走,进入BasicAuthenticationFilter原创 2020-07-26 03:27:41 · 418 阅读 · 0 评论 -
[NIO中Buffer的capacity,position和limit含义]
[NIO中Buffer的capacity,position和limit含义]Buffer的capacity,position和limit 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。 为了理解Buffer的工作原理,需要熟悉它的三个属性:capacitypositionlimitposition和limit的含义取决于Buffer处在读模式还是写模式。不管Buffer处在什么模式,capacity的含义原创 2020-06-20 23:20:49 · 610 阅读 · 0 评论 -
JVM垃圾回收机制:GC
Java GC 基础一 ——Hotspot 架构及内存区域介绍HotSpot虚拟机架构:HotSpot是Sun公司的JVM,是我们俗称的Java虚拟机(JVM是天上飞的理念)VM(Virtual Machine):一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM(Java Virtual Machine):提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java代码可在符合该规范的任何系统上运行现在我们原创 2020-06-10 13:50:48 · 139 阅读 · 0 评论 -
类加载机制-深入理解jvm
类加载机制-深入理解jvm一.目标:1.什么是类的加载?2.类的生命周期?3.类加载器是什么?4.双亲委派机制是什么?二.原理 (类的加载过程及其最终产品):JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。三.过程(类的生命周期):JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来原创 2020-06-10 13:46:30 · 211 阅读 · 0 评论 -
CGLIB动态代理
package com.xzp.active;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import org.springframework.cglib.proxy.Enhancer;public class TransactionManageAdvice<T> implements org.springfram原创 2020-06-10 13:44:16 · 131 阅读 · 0 评论 -
JDK动态代理
JDK动态代理package com.xzp.active;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import org.springframework.cglib.proxy.Enhancer;public class TransactionManageAdvice<T> implements Invoca原创 2020-06-10 13:43:04 · 132 阅读 · 0 评论 -
hibernate框架的三种状态
瞬时状态,持久状态,游离状态瞬时状态:只是在jvm内存获取一块空间,还没有在数据库中处于持久状态最大的特点是在数据库中没有对应的一条记录瞬时状态是孤立于内存中的,在数据库中没有任何对应记录持久状态:持久化对象就是已经被保存进数据库的实体对象但是这个对象还保存在hibernate的缓存区中这个时候刷新hibernate的缓存,会自动将缓存区的数据保存进数据库也就是说在hibernate缓存区中对这个对象做任何修改,在刷新缓存的时候都会被一并存入数据库持久状态的数据不原创 2020-06-10 13:40:14 · 143 阅读 · 0 评论 -
Spring注解大全
注解解释[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ptHrhZWP-1591669384393)(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mhtcevH3-1591669384396)(data:image/gif;base64,R0lGODlhAQ...原创 2020-06-09 10:23:11 · 165 阅读 · 0 评论 -
熔断与降级
比如我们家是不是电路都有保险丝一旦电量使用过大可能造成危险的时候会跳闸请求也是这样 假如我访问order-server的下单 结果这个时候发现访问不了 请求一直失败那我们就直接关闭这个服务这就是熔断 不让线程阻塞在这里降级的话 就是这个请求访问不了,准备一个fallback类在正常的SpringCloud使用的Netflix组件,熔断降级是通过Hystrix使用的...原创 2020-06-09 10:22:22 · 216 阅读 · 0 评论 -
Ribbon实现负载均衡原理
准备准备一个Eureka,三个服务器(集群),一个客户端,5个全运行注意:Debug运行user-consumer-demo项目(客户端)在这里插入图片描述一、Debug运行为什么我们只输入了service名称就可以访问了呢?之前还要获取ip和端口。显然有人帮我们根据service名称,获取到了服务实例的ip和端口。它就是LoadBalancerInterceptor我们进行源码跟踪:(Debug运行user-consumer-demo项目)双击Shift 输入 LoadBalancerIn原创 2020-06-09 10:21:12 · 325 阅读 · 0 评论 -
使用Ribbon实现客户端侧负载均衡
Ribbon是NetFlix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为.为Ribbon配置服务提供者地址列表后,Ribbon配置服务提供者地址列表后,Ribbon默认为我们提供了许多负载均衡算法,例如轮询,随机等,当然我们也可以为Ribbon自定义负载均衡算法在SpringCloud中,Ribbon与Eureka配合使用的时候Ribbon可以自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法请求其中一个服务提供者实例Ribbon其实就是使用负载均衡算法:轮询,随机原创 2020-06-09 10:20:38 · 213 阅读 · 2 评论 -
注册服务与发现 Eureka
概念:springcloud主要实现分布式就是多个项目之间互相远程调用 cloud是RPC框架Eureka是注册中心,多个关联项目的管理中心,他们可以通过eureka关联在一起首先我们要讲一个架构笔记:server: port: 8761eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl:原创 2020-06-09 10:20:02 · 195 阅读 · 0 评论 -
Elasticsearch核心概念
elasticsearch是面向文档的,关系型数据库和elasticsearch客观的对比!数据库索引 (indices)表(tables)types行(rows)documents字段(columns)fieldsRelationnal DBelasticsearchanalyze:分词器analyzer: ik_smart ik_max_word 两种分词选择ik_smart: 最粗粒度分词器,ik_max_word: 最细粒度分词器.原创 2020-06-09 09:35:07 · 189 阅读 · 0 评论 -
SpringBoot自动装配原理
当我们启动SpringBoot的时候(1)SpringApplication.run方法执行流程中有refreshContext(context)这句话(2)refreshContext内部会解析我们的配置类上的标签,实现自动装配功能的注解@EnableAutoConfiguration(3)会解析@EnableAutoConfiguration这个注解里面的@Import引入的配置类AutoConfigurationImportSelector(4)AutoConfigurationImportS原创 2020-06-08 09:42:09 · 177 阅读 · 0 评论 -
SpringBootApplication注解的初步认识
@SpringBootApplication是一个组合注解它也是SpringBoot中的核心注解其中包含了三大注解:@SpringBootConfiguration:本质上就是一个配置类@EnableAutoConfiguration:实现了SpringBoot的自动装配@CompentScan 自动扫描了当前包及其子包的注解,然后过滤了两个类SpringBoot项目运行时期底层会自动创建tomcat容器,不需要第三方的tomcat支持...原创 2020-06-08 09:41:55 · 261 阅读 · 0 评论 -
RocketMQ术语与概念
1.(Topic)主题:一类消息的集合,RocketMQ的基本订阅单位****2.消息模型:Producer(生产者,生产消息) , Broker(消息代理,存储消息/转发消息) , Consumer(消费者,消费信息)****3.部署结构:Name Server(名字服务):生产者/消费者通过名字服务查找各主题响应的Broker IP列表Broker Server(代理服务器):消息中转角色,负责存储消息/转发消息****4.消费模式:Pull Consumer(拉取式消费):应用原创 2020-06-08 09:39:57 · 322 阅读 · 0 评论 -
软件七大设计原则
软件七大设计原则:1.开闭原则2.单一职责原则3.接口隔离原则4.迪米特原则5.合成复用原则6.里氏替换原则7.依赖倒置原则常见设计模式类型区分(共计23种):1.创建型设计模式:1)工厂方法模式2)抽象工厂模式3)建造者模式4)单例模式5)原型模式2.结构型模式1)适配器模式2)装饰者模式3)代理模式4)外观模式5)桥接模式6)组合模式7)享元模式3.行为型模式1)策略模式2)观察者模式3)责任链模式4)备忘录模式5)模板方法模式6)迭代器模式7原创 2020-06-08 09:38:39 · 284 阅读 · 0 评论 -
Eclipse安装JRebel(一款JVM级别的热部署插件)2020最新
Eclipse安装JRebel(一款JVM级别的热部署插件)2020最新1.JRebel介绍:JRebel是一套JavaEE开发工具。JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品。 JRebel是收费软件,用户可以在JRebel官方站点下载30天的评估版本。Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。原创 2020-05-28 10:04:47 · 3547 阅读 · 8 评论 -
SpringCloud微服务解决网关跨域问题
SpringCloud微服务解决网关跨域问题写这篇文章之前我遇到了一个难以解决的CORS跨域问题如图:我也试了各种方式,比如网上常见的在Controller、接口上贴注解啊什么的下面先列一下在此之前我尝试过的方式:1.在方法参数加HttpRsponseServlet:response.setHeader("Access-Control-Allow-Origin", "*"); 2.在Controller或接口上贴@CrossOrigin注解@CrossOrigin// 我还原创 2020-05-20 10:11:18 · 1560 阅读 · 0 评论 -
Swagger几个常用注解的用途(史上最全)
Swagger几个常用注解的用途注解汇总表格:注解作用使用位置@Api表示对类的说明常用参数类@ApiOperation说明方法的用途、作用方法@ApiImplicitParams表示一组参数说明方法@ApiImplicitParam表示单独的请求参数@ApiImplicitParams中@ApiModel表示一个返回响应数据的信息响应类@ApiModelProperty描述响应类的属性属性@ApiResponses表示原创 2020-05-11 13:27:36 · 2228 阅读 · 0 评论 -
关于IntelliJ IDEA构建Gradle项目失败
关于IntelliJ IDEA构建Gradle项目失败原先我使用的是IDEA2019版本的,导入一个Gradle项目完全引入不了依赖网上有很多说自己下载个Gradle配置环境呀什么的,创建Init文件改阿里云源啊但是到最后都无法解决我的问题,先列上我的问题截图(我导入的是Halo博客项目)最后,我直接把IDEA卸载,安装最新版的IDEA2020.1版本再导入Gradle项目,构建成功!...原创 2020-04-12 01:17:12 · 3133 阅读 · 0 评论