高级
star9595
只有回不了的过去,没有到不了的明天
展开
-
Spring Cloud Gateway 过滤器执行顺序原理分析
Spring Cloud Gateway 过滤器执行顺序原理分析转载 2021-08-22 15:23:37 · 261 阅读 · 0 评论 -
Maven最佳实践
1.Maven最佳实践:Maven仓库2.maven 仓库配置 pom中repositories属性转载 2021-08-13 16:23:27 · 272 阅读 · 0 评论 -
Spring Security Oauth2总结
Spring Security Oauth2Spring Security Oauth2 单点登录 第三方授权转载 2021-07-29 14:30:44 · 128 阅读 · 0 评论 -
Maven依赖深入理解
optional是Maven依赖jar时的一个选项,表示该依赖是可选的,项目之间依赖不传递。不设置optional(默认)或者optional是false,表示传递依赖。parent继承的情况如果A的pom像下面这样配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2原创 2021-01-22 17:44:46 · 336 阅读 · 0 评论 -
过滤器与拦截器
1.过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的w.原创 2020-05-12 13:00:28 · 228 阅读 · 0 评论 -
Springboot自动配置原理
Springboot自动配置原理原创 2021-01-12 13:20:03 · 117 阅读 · 0 评论 -
JDK,JRE,JVM三者的区别
JDK,JRE,JVM三者的区别jdk里面的jre与jdk外面的jre区别:相同点:这两个JRE都可以作为开发Java程序的运行环境。不同点:JDK里面的JRE是JDK自带的为其开发工具提供运行环境的JRE,JDK自带的开发工具只能使用JDK自己目录下的JRE,不能使用JDK外面的JRE,JDK外面JRE用于为Java程序提供运行环境。可以参考如下链接:JDK,JRE,JVM三者的区别...原创 2020-12-06 16:26:19 · 490 阅读 · 0 评论 -
Springboot启动分析
Springboot启动分析1. new出来一个 SpringApplication对象执行其run方法;此过程中,Spring Boot通过Spring的工厂方法加载应用上下文初始器;加载应用事件监听器;2. run方法返回 ConfigurableApplicationContext;3. 调用createApplicationContext()方法创建上下文对象,创建上下文对象同时会注册spring的核心组件类;4. 调用refreshContext() 方法启动Spring容器和内置的Se原创 2020-12-04 18:05:00 · 137 阅读 · 0 评论 -
volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下...原创 2018-03-26 21:21:33 · 128 阅读 · 0 评论 -
多线程notify与wait
使用wait和notify方法实现线程之间的通信,注意,这两个方法是Object类的方法,也就是说Java为所有的对象都提供的这两个方法。1 wait和notify必须配合synchronized关键字使用。2 wait方法释放锁,notify方法不释放锁。3 涉及到线程之间的通信,就肯定会用到 volatile 修饰。import java.util.ArrayList;import java.util.List;/** * @Auther: 13213 * @Date: 2020/原创 2020-11-16 11:08:11 · 325 阅读 · 0 评论 -
观察者模式总结
观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。在观察者模式中有如下角色:Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。ConcreteSubject:具体主题(具体被观察者),该角色将有关转载 2020-11-16 09:52:03 · 289 阅读 · 0 评论 -
跨域问题
简单的跨域案例封装跨域方法转载 2020-11-12 11:09:32 · 76 阅读 · 0 评论 -
java设计模式
代理模式:静态代理总结:1.可以做到在不修改目标对象的功能前提下,对目标功能扩展.2.缺点:因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护.动态代理:Cglib代理是功能最为强大的一种代理方式,因为其不仅解决了静态代理需要创建多个代理类的问题,还解决了jdk代理需要被代理对象实现某个接口的问题。Cgli...原创 2020-05-01 10:36:13 · 235 阅读 · 0 评论 -
redis数据备份与恢复机制
redis 两种持久化方式以及数据备份与恢复方案转载 2020-11-12 09:56:32 · 269 阅读 · 0 评论 -
Vue生命周期函数
Vue生命周期函数转载 2020-11-11 17:01:32 · 170 阅读 · 0 评论 -
vuex详解
computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理;computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化,举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化。这里的这个总金额使用computed属性来进行计算是最好的选择与watch之间原创 2020-11-10 10:38:29 · 173 阅读 · 0 评论 -
vue中dispatch与commit使用
dispatch:含有异步操作,例如向后台提交数据,写法: this.$store.dispatch('action方法名',值)commit:同步操作,写法:this.$store.commit('mutations方法名',值)原创 2020-10-12 10:40:16 · 26080 阅读 · 0 评论 -
Spring Ioc实现原理
使用反射机制+XML技术当web容器启动的时候,spring的全局bean的管理器会去xml配置文件中扫描的包下面获取到所有的类,并根据你使用的注解,进行对应的封装,封装到全局的bean容器中进行管理,一旦容器初始化完毕,beanID以及bean实例化的类对象信息就全部存在了,现在我们需要在某个service里面调用另一个bean的某个方法的时候,我们只需要依赖注入进来另一个bean的Id即可,调用的时候,spring会去初始化完成的bean容器中获取即可,如果存在就把依赖的bean的类的实例化对象原创 2020-11-06 15:45:12 · 166 阅读 · 0 评论 -
Spring事务深入理解
JPA(Java Persistence Api)是一个基于ORM(或叫O/R mapping ,对象关系映射)的标准规范,在这个规范中JPA只定义标准规则,不提供实现。Hibernate是JPA规范的一种实现。spring框架中提供Spring Data JPA作为开发者应用Hibernate框架的接口工具;Spring Boot则提供了一款全自动的“自动依赖模块”:spring-boot-starter-data-jpaSpring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式原创 2020-06-09 13:55:10 · 168 阅读 · 0 评论 -
mysql数据库死锁的产生原因及解决办法
锁类型在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。死锁的第一种情况一个用户A 访问表A(锁住了表A),然后又访问表B;另一个用户B 访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A原创 2020-11-05 15:28:27 · 207 阅读 · 0 评论 -
悲观锁与乐观锁
悲观锁与乐观锁一、悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。Java在JDK1.5之前都是靠 synchronized关键字保证同步的,synchronized 是悲观锁。悲观锁机制存在以下问题: 1. 在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。2. 一个线程持有锁会导致其它所有需要此锁的线程挂起。3. 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先原创 2020-05-14 15:14:50 · 136 阅读 · 0 评论 -
乐观锁与悲观锁及应用案例
乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。实现原理:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获取出version字段,如果要对那条记录进行操作(更新),则先判断此刻version的值是否与刚刚查询出来时的version的值相等,如果原创 2020-11-05 11:09:56 · 274 阅读 · 0 评论 -
mysql事务机制
一、事务的基本要素(ACID)1、原子性(Atomicity)2、一致性(Consistency)3、隔离性(Isolation)4、持久性(Durability)二、事务的并发问题 1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。 3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等原创 2020-11-04 17:04:55 · 486 阅读 · 0 评论