手写简易MVC – IOC
耦合 在软件系统中,层与层之间存在依赖关系,我们称之为耦合。 我们系统架构设计的一个原则是:高内聚低耦合。层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的。 在上一篇中...
手写简易MVC – 引入三层架构
什么是三层架构 在实际工作中,业务是很复杂的。为了更好的降低各层之间的 耦合度(系统的复杂度,在三层架构程序设计中,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下...
手写简易MVC-DispatcherServlet
这一篇不要过多的纠结代码质量,只要是思想。这一块不看对工作没有影响,但是为了往更高的方向发展,还是需要掌握的。 1. Servlet 优化 1.1 需求 假设我们有一个简易的水果店铺管理系统,对应的...
五、虚拟机栈
虚拟机栈概述 1. 虚拟机栈的出现背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是...
ThreadPoolExecutor 核心线程与等待队列相关问题探讨
先来回顾下线程池的执行流程: 任务加入等待队列的条件是核心线程池已满,且等待队列未满。我原本以为这个核心线程池已满,指的是核心线程都在执行任务,但是我今天遇到一个现象,发现并不是我...
HTTP协议
1. 简介 HTTP:Hyper Text Transfer Protocol超文本传输协议。HTTP最大的作用就是确定了请求和响应数据的格式。浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据...
事务管理
问题 我们一个Service中包含多个DAO操作,每个DAO中都有各自的事务管理。如果DAO1执行成功,DAO2执行失败回滚了,那么数据便会出现问题。 比如银行转账的例子:张三给李四转了100块钱,但是张三...
单例模式双重校验与volatile关键字
学过单例模式我们都知道,双重校验是单例模式线程安全的懒汉式实现模式。代码如下: /** * @Author shenxy * @Date 2022/8/26 19:29 * @Version 1.0 */ public class Singleton { private volat...
idea下创建web项目
1. 新建 1. 打开idea,选择file->New->Project 2. 新建web项目 3. 新建index.html 4. 创建tomcat容器模板(创建过的可以跳过这一步) 5. 配置容器 默认打开index.html 6. 启动项目 2. 导入
Listener
1. 概念 监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。 Servlet监听器:Servlet规范中定义的一种特殊...
一、JVM与Java体系结构
尚硅谷JVM课程学习笔记,课程来源:尚硅谷宋红康JVM教程 字节码 我们平时说的java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统...
Servlet 获取请求参数流程
1. 前段代码 index.html中新建一个form表单 2. 后端代码 客户端向服务端发送请求,服务端会将请求封装为HttpRequest。 创建AddServlet,普通类是无法获取用户发送的请求数据的,需要继承HttpSer...