- 博客(76)
- 收藏
- 关注
原创 设计模式-大使模式(Ambassador)
大使适用于无法修改或极难修改的旧式远程服务。可以在客户端上实现连接性的功能,而无需更改远程服务。创建代表消费者服务或应用程序发送网络请求的帮助服务。
2022-12-29 10:45:34
322
原创 设计模式-适配器模式
大多数使用第三方类库的应用使用适配器作为一个在应用和第三方类库间的中间层来使应用和类库解耦。如果必须使用另一个库,则只需使用一个新库的适配器而无需改变应用程序的代码。在软件工程中,适配器模式是一种可以让现有类的接口把其作为其他接口来使用的设计模式。你需要使用一些现有的子类,但是子类化他们每一个的子类来进行接口的适配是不现实的。:将一个接口转换成另一个客户所期望的接口。你需要创建一个可重用类,该类与不相关或不可预见的类进行协作,即不一定具有兼容接口的类。想使用一个已有类,但是它的接口不能和你需要的所匹配。
2022-12-14 08:33:44
225
原创 设计模式-Acyclic Visitor(非循环访问者模式)
当某些功能在层次结构上运行,但不属于层次结构本身时。:允许将新功能添加到现有的类层次结构中,而不会影响这些层次结构,也不会有四人帮访客模式中那样循环依赖的问题。参考:https://java-design-patterns.com/需要在现有层次结构中添加新功能而无需更改或影响该层次结构时。当重新编译,重新链接,重新测试或重新分发派生元素非常昂贵时。当访问的类层次结构将经常使用元素类的新派生进行扩展时。当您需要根据对象的类型对对象执行非常不同的操作时。
2022-12-13 09:05:03
612
原创 设计模式-活动对象模式
活动对象模式有助于解决同步困难,而无需使用“synchronized”方法。活动对象将包含线程安全数据结构(如BlockingQueue),并通过移动方法的逻辑来同步方法调用并将其存储在DSA中。活动对象设计模式使每个驻留在其控制线程中的对象的方法执行与方法调用脱钩。目的是通过使用异步方法调用和用于处理请求的调度程序来引入并发。1.创建活动对象抽象类。
2022-12-12 15:53:43
280
原创 mybatis-plus中传参会传进包名
在本地测试均无任何问题,但是将代码提交后,部署到测试服务器后,出现了问题。项目层级的查询不管用,先是在本地分支上排查,但是无论怎么测试都没问题,只要一部署测试服务器就不行,数据库配置都是一样的不存在数据不一致的问题。项目中遇到了一个问题,mybatis在使用中遇到了一个小问题,困扰了不久。后来查看测试服务器日志打印发现传递的项目参数对象的值也没有问题,但是传进去的参数成了一个类似包名的东西。虽然问题解决了,但还是不是很清楚,其中的原理,没道理前两个传参都没问题,就第三个有问题。
2022-12-09 08:48:40
333
4
原创 Axios的使用详解
跨域:浏览器存在同源策略,为了保证安全,不是一个服务器内的通信不会接收数据,但是服务器之间是可以通信的,所以跨域就是在前端服务器内部建立一个代理,由代理向后台服务器发送请求接收数据,浏览器向前端服务去的代理发送请求和获取数据,这样请求就是在一个服务器内部,可以接收数据。Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。配置选项,可以自定义抛出错误的 HTTP code。第二种:包含该前缀的将被替换该路径。第一种:所有的请求都会变成该路径。
2022-09-29 10:59:13
763
原创 Vuex如何实现数据共享?
3. actions里面使用context.commit('传递的方法名',value) 第一个参数是mutations里面的方法参数 将value传递到mutations里面的方法。this.$store.dispatch('自定义名称/actions',this.name)this.$store.commit('自定义名称/mutations',this.name)...mapState('自定义名称',['sum', 'schoolName']),:集中式管理、状态可预测,简化组件管理状态的过程。
2022-09-25 21:36:50
367
原创 Vue的生命周期
当属就被修改时触发Virtual DOM re-render and patch:根据新数据,生产新的虚拟DOM,随后与旧的虚拟DOM进行比较,最终完成页面更新。此时,VM中所有的:data、methods、指令等等都处于可用状态,马上要执行销毁过程,一般在此阶段:关闭定时器,取消消息订阅消息、解绑自定义事件等收尾操作。到渲染、更新渲染、销毁等一系列过程,他主要分为8个阶段,创建前后、载入前后、更新前后、销毁前、销毁后、以及一些特殊场景的生命周期。此时:数据是新的,页面也是新的,即L页面和数据保持同步。
2022-09-18 18:12:05
189
原创 Shiro和Security的核心模块以及两者的区别
subject主题,外部应用与subject进行交互,subject将用户作为当前操作的主体,这个主体:可以是一个 通过浏览器请求的用户,也可能是一个运行的程序。subject在shiro中是一个接口,接口中定义了很多认证授权的方法,外部程序通过subject进行认证授权,而subject是通过SecurityManager安全管理器进行认证鉴权。
2022-09-04 18:57:31
363
原创 Redis为什么速度这么快?
在计算机中数据一般存在磁盘中,磁盘的两大重要指标,1.寻址 在磁盘中是ms级别,2.带宽是MB到GB之间,而在内存中寻址是ns级别,在这一方面,磁盘比内存慢10万倍,内存中的带宽最低是GB级别。单线程做业务时,省去了线程切换的开销,这也是它速度快的原因之一。Redis的存储命令在运行后,底层会把数据存储在一个全局哈希表里(数组加链表),时间复杂度为 O(1),存储查询时,速度很快。首先,Redis是一个使用C语言开发的Key-Value数据库,与其他数据库不同的事,它的数据是存在内存中的。
2022-08-25 13:06:27
654
原创 springboot是怎么实现自动配置的?
可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。)的延续,可以借助它来实现自动配置的功能。importSelector接口中有一个selectImports方法,返回值是一个字符串数组,数组中的每个元素就是将要被导入的配置类的全限定的类名。@import:提供可以显式的从其他地方加载配置类的方式。...
2022-08-14 22:46:13
2532
原创 Spring是如何解决循环依赖的?
什么叫循环依赖:简单来说,在spring中对象的创建管理都是IOC容器帮我们做的,以默认单例的方式帮我们创建bean,但是会出现一个问题:对象A里面有个属性是B对象,B对象里面又有一个A对象。如下不管先创建哪个对象,在属性赋值时都要需要另一个对象。假设创建A对象,需要属性赋值的时候,发现需要B对象,去创建B对象的时候,发现需要A对象,此时A对象还未创建完,这样就形成了一个简单的循环依赖问题。流程图: 此时容器中当然没有A和B对象,可以发现此时已经形成了一个闭环,也就是循环依赖。解决的
2022-08-06 19:28:01
338
原创 SpringBoot:整合JPA-Specifications动态查询:
有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。CriteriaBuilder:构造查询条件的,内部封装了很多的查询条件(模糊匹配,精准匹配))1.实现Specification接口(提供泛型:查询的对象类型)2.实现toPredicate方法构造查询条件)。root:获取需要查询的对象属性。...
2022-08-02 19:30:48
1284
原创 什么是模板引擎?常见的模板引擎有哪些?thymeleaf的常用指令介绍。
什么是模板引擎?常见的模板引擎有哪些?thymeleaf的常用指令介绍。
2022-07-11 00:03:13
614
原创 servlet中 servlet context与 session与 request三个对象的常用方法和存放数据的作用域
ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那 么不同用户发起的请求获取到的也就是同一个对象了,该对象由 用户共同拥有。ServletContext getServletContext( ) 获得servlet容器对象void setAttribute (String name, Object object ) 用容器对象利用键值对保存数据Object getAttri
2022-07-03 16:13:35
353
原创 java多线程简述
多线程 多线程的好处是什么? 发挥多核CPU的效率 有什么需要注意的? 线程不能独立存在,需要依附于进程 什么是进程? 一个应用程序就是一个或多个进程 什么是线程? 线程的运行方式 并行(必须是多核CPU) 一个或多个事情(任务)在同一时间点(同时)执行 并发(一个核也行) 一个或多个事情在同一时间段(有先后顺序)执行 调度方式 分时调度
2022-06-06 11:01:07
86
原创 Java集合简述
集合 作用:存储同一类型的元素 分类 双列集合(Map接口) 特点: 一个元素由K,V两部分组成 K和V可以是任意引用数据类型 一个K值对应一个V值,K不能重复 分类 HashMap<E> 底层是哈希表,无序 LinkedHashMap<E> 底层是链表+哈希表,有序 TreeMap<E> 底
2022-06-06 10:58:55
223
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅