摘要: -- 阅读全文
posted @ 2021-10-23 16:23 残城碎梦 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 两阶段提交(2PC) 两阶段提交又称2PC,2PC是一个非常经典的强一致、中心化的原子提交协议。 这里所说的中心化是指协议中有两类节点:一个是中心化协调者节点(coordinator)和N个参与者节点(partcipant)。 两个阶段:第一阶段:投票阶段 和第二阶段:提交/执行阶段。 举例 订单服 阅读全文
posted @ 2021-10-23 13:27 残城碎梦 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Docker 是什么? Docker是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何 阅读全文
posted @ 2021-10-20 23:11 残城碎梦 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 分布式事务概念 什么是事务 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。 本地事务 数据库事务的四大特性 ACID: A(Atomic): 原子性 ,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consiste 阅读全文
posted @ 2021-10-19 21:28 残城碎梦 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 在我们的应用系统中,经常会处理一些耗时任务,自然而然的会想到使用多线程。JDK给我们提供了非常方便的操作线程的API,JDK5之后更是新增了JUC包的支持,并发编程大师Doug Lea(JDK并发的作者)也是一直在为我们使用线程做着不懈的努力。 为什么还要使用Spring来实现多线程呢?这是句废话! 阅读全文
posted @ 2021-10-16 18:25 残城碎梦 阅读(1597) 评论(0) 推荐(0) 编辑
摘要: -- 阅读全文
posted @ 2021-10-16 18:25 残城碎梦 阅读(18) 评论(0) 推荐(0) 编辑
摘要: -- 阅读全文
posted @ 2021-10-16 18:14 残城碎梦 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 在web开发中,拦截器是经常用到的功能。它可以帮我们验证是否登陆、预先设置数据以及统计方法的执行效率等等。 spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor。 HandlerInterceptor拦截器 HandlerInterce 阅读全文
posted @ 2021-09-27 23:42 残城碎梦 阅读(388) 评论(0) 推荐(0) 编辑
摘要: Spring MVC框架简介 Spring MVC是什么呢,它是属于Spring FrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。可以简单的把sprin 阅读全文
posted @ 2021-09-27 23:40 残城碎梦 阅读(115) 评论(0) 推荐(0) 编辑
摘要: Spring读取Properties文件 resources/app.properties文件 name=hello age=23 Environment读取配置文件 指定数据源,注入Environment对象。 @Configuration @PropertySource("classpath:a 阅读全文
posted @ 2021-09-27 23:36 残城碎梦 阅读(270) 评论(0) 推荐(0) 编辑
摘要: IDEA创建普通Project 1、打开idea软件,点击界面上的Create New Project 或file-》new-》project; 2、出现以下界面,选中Java,然后选择jdk,最后点击Next,进行下一步(我的是jdk1.8) 3、这里是选择生成项目时是否创建java文件,勾选上J 阅读全文
posted @ 2021-09-26 22:17 残城碎梦 阅读(253) 评论(0) 推荐(0) 编辑
摘要: -- 阅读全文
posted @ 2021-09-21 12:11 残城碎梦 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Servlet 3.0 之前,Servlet、Filter、Listener 这些组件都需要在 web.xml 中进行配置,3.0 之后开始不再需要 web.xml 这个配置文件了,所有的组件都可以通过代码配置或者注解来达到目的。 Servlet 3.0 开始提供了这 3 个注解来代替: @WebS 阅读全文
posted @ 2021-09-21 12:08 残城碎梦 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 如上图: 1、启动容器后,会对scope为singleton并且非懒加载的bean进行实例化(getBean方法触发实例化);2、按照BeanDefinition定义信息配置信息,注入所有属性;3、如果实现了BeanNameAware接口,会调用接口的setBeanName方法,传入该bean的唯一 阅读全文
posted @ 2021-09-21 11:41 残城碎梦 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 在讲解事件监听机制前,我们先回顾下设计模式中的观察者模式,因为事件监听机制可以说是在典型观察者模式基础上的进一步抽象和改进。我们可以在JDK或者各种开源框架比如Spring中看到它的身影,从这个意义上说,事件监听机制也可以看做一种对传统观察者模式的具体实现,不同的框架对其实现方式会有些许差别。 典型 阅读全文
posted @ 2021-09-21 11:40 残城碎梦 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 从顶层视图看: 本质上的工作原理就是:把应用程序的类和配置元数据组装起来,以便在ApplicationContext创建并初始化好之后,IoC容器直接为你提供了一个已经配置好并且可执行的系统或应用。 BeanFactory和ApplicationContext IOC容器接口设计图 其中的BeanF 阅读全文
posted @ 2021-09-20 12:27 残城碎梦 阅读(118) 评论(0) 推荐(0) 编辑
摘要: AOP全名 Aspect-oriented programming 面向切面编程。 AOP的两种代理方式: 以AspectJ为代表的静态代理。 以Spring AOP为代表的动态代理。 基本术语 切面(Aspect) 切面是一个横切关注点的模块化,一个切面能够包含同一个类型的不同增强方法,比如说事务 阅读全文
posted @ 2021-09-05 15:49 残城碎梦 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 番外篇 农夫需要把菜运输到大象国去卖 于是自己创建了一个工厂专门生成运输工具(工厂模式) 后来农夫觉得自己开工厂太费劲了,于是去寻找有直接生产运输工具的工厂。终于找到了一个叫做IoC的工厂 农夫从IoC工厂那里直接购买了一个运输工具(getBean),由于农夫之前也没见过飞机和轮船,不知道这个究竟是 阅读全文
posted @ 2021-09-05 15:49 残城碎梦 阅读(102) 评论(0) 推荐(0) 编辑
摘要: WebApplicationInitializer 现在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是web.xml的替代,它是一个接口。通过实现WebApplicationInitializer,在其中可以添加servlet,l 阅读全文
posted @ 2021-09-05 15:46 残城碎梦 阅读(241) 评论(0) 推荐(0) 编辑
摘要: ServletContext JavaEE标准规定了,Servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext,作为公共环境容器存放公共信息。ServletContext中的信息都是由容器提供的。 举例:通过自定义ContextListener获取web.xml中配置 阅读全文
posted @ 2021-09-05 14:33 残城碎梦 阅读(98) 评论(0) 推荐(0) 编辑