草庐IT

day16-声明式事务-02

声明式事务-023.事务的传播机制事务的传播机制说明:当有多个事务处理并存时,如何控制?比如用户去购买两次商品(使用不同的方法),每个方法都是一个事务,那么如何控制呢?也就是说,某个方法本身是一个事务,然后该方法中又调用了其他一些方法,这些方法也是被@Transactional修饰的,同样是事务。问题在于:里层方法的事务是被外层方法事务管理?还是它本身作为一个独立的事务呢?这就涉及到事务的传播机制问题。3.1事务传播机制种类事务传播的属性/种类:传播属性说明REQUIRED(默认)如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事务,并且在自己的事务内运行REQUIRES_

day05-SpringMVC底层机制简单实现-01

SpringMVC底层机制简单实现-01主要完成:核心分发控制器+Controller和Service注入容器+对象自动装配+控制器方法获取参数+视图解析+返回JSON格式数据https://github.com/liyuelian/springmvc-demo.git1.搭建开发环境创建Maven项目,File-New-Project-Maven将pom.xml文件中的编译版本改为1.8在src目录下创建以下目录:java代码放在java目录下,相关的资源文件放在resource目录下,对maven的web项目而言,resource就是类路径。前端页面放在webapp下,该目录对应之前的we

day05-SpringMVC底层机制简单实现-01

SpringMVC底层机制简单实现-01主要完成:核心分发控制器+Controller和Service注入容器+对象自动装配+控制器方法获取参数+视图解析+返回JSON格式数据https://github.com/liyuelian/springmvc-demo.git1.搭建开发环境创建Maven项目,File-New-Project-Maven将pom.xml文件中的编译版本改为1.8在src目录下创建以下目录:java代码放在java目录下,相关的资源文件放在resource目录下,对maven的web项目而言,resource就是类路径。前端页面放在webapp下,该目录对应之前的we

《分布式技术原理与算法解析》学习笔记Day07

分布式锁什么是分布式锁?为了实现分布式互斥,我们需要在某个地方做个标记,这个标记是每个线程都可以看到,当标记不存在时可以设置该标记,当标记被设置后,其他线程只能等待拥有该标记的线程执行完成,并释放该标记后,才能去设置该标记和访问共享资源。这里的标记就是我们讨论的锁。锁就是在多线程同时访问同一资源的场景下,为了让线程互不干扰地访问共享资源,从而保证操作的有效性和正确性的一种标记。分布式锁是指在分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程都可以看到锁,锁需要通过公共存储来管理,这样才能实现多个进程并发访问同一个临界资源,同一个时刻只有一个进程可访问共享资源,确

《分布式技术原理与算法解析》学习笔记Day07

分布式锁什么是分布式锁?为了实现分布式互斥,我们需要在某个地方做个标记,这个标记是每个线程都可以看到,当标记不存在时可以设置该标记,当标记被设置后,其他线程只能等待拥有该标记的线程执行完成,并释放该标记后,才能去设置该标记和访问共享资源。这里的标记就是我们讨论的锁。锁就是在多线程同时访问同一资源的场景下,为了让线程互不干扰地访问共享资源,从而保证操作的有效性和正确性的一种标记。分布式锁是指在分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程都可以看到锁,锁需要通过公共存储来管理,这样才能实现多个进程并发访问同一个临界资源,同一个时刻只有一个进程可访问共享资源,确

day06-SpringMVC底层机制简单实现-02

SpringMVC底层机制简单实现-02https://github.com/liyuelian/springmvc-demo.git4.任务3-从web.xml动态获取容器配置文件4.1分析任务3:MyDispatcherServlet(自定义的前端分发器)在创建并初始化自定义的spring容器时,可以动态地从web.xml中获取到配置的容器文件。我们之前实现的时候,是直接在MyWebApplicationContext中指定要读取的容器文件。改进:在web.xml中通过init-param指定容器文件,然后通过读取web.xml获取即可。这样可以动态地读取容器文件,不需要改变源代码。4.2

day06-SpringMVC底层机制简单实现-02

SpringMVC底层机制简单实现-02https://github.com/liyuelian/springmvc-demo.git4.任务3-从web.xml动态获取容器配置文件4.1分析任务3:MyDispatcherServlet(自定义的前端分发器)在创建并初始化自定义的spring容器时,可以动态地从web.xml中获取到配置的容器文件。我们之前实现的时候,是直接在MyWebApplicationContext中指定要读取的容器文件。改进:在web.xml中通过init-param指定容器文件,然后通过读取web.xml获取即可。这样可以动态地读取容器文件,不需要改变源代码。4.2

《分布式技术原理与算法解析》学习笔记Day08

集中式结构什么是集中式结构?集中式结构就是由一台或多台服务器组成的中央服务器,系统内的所有数据都存储在中央服务器中,系统内所有的业务都先由中央服务器处理。多个节点服务器与中央服务器连接,并将自己的信息汇报给中央服务器,由中央服务器统一进行资源和任务调度:中央服务器根据这些信息,将任务下达给节点服务器;节点服务器并行任务,并将结果反馈给中央服务器。集中式结构最大的特点,就是部署结构简单。本文会描述下面3种经典的集中式结构:GoogleBorgKubernetesMesosGoogleBorgBorg是Google内部使用的集群管理系统,采用了典型的集中式结构。在Borg中一个集群被称为一个Cel

《分布式技术原理与算法解析》学习笔记Day08

集中式结构什么是集中式结构?集中式结构就是由一台或多台服务器组成的中央服务器,系统内的所有数据都存储在中央服务器中,系统内所有的业务都先由中央服务器处理。多个节点服务器与中央服务器连接,并将自己的信息汇报给中央服务器,由中央服务器统一进行资源和任务调度:中央服务器根据这些信息,将任务下达给节点服务器;节点服务器并行任务,并将结果反馈给中央服务器。集中式结构最大的特点,就是部署结构简单。本文会描述下面3种经典的集中式结构:GoogleBorgKubernetesMesosGoogleBorgBorg是Google内部使用的集群管理系统,采用了典型的集中式结构。在Borg中一个集群被称为一个Cel

day07-SpringMVC底层机制简单实现-03

SpringMVC底层机制简单实现-03https://github.com/liyuelian/springmvc-demo.git7.任务6-完成控制器方法获取参数-@RequestParam功能说明:自定义@RequestParam注解和方法参数名获取参数。当浏览器访问Handler方法时,如果url带有参数,可以通过自定义的@RequestParam注解来获取该参数,将其值赋给Handler方法中该注解修饰的形参。如:url=http://ip:port/web工程路径/monster/find?name=孙悟空@RequestMapping(value="/monster/find"