缓冲区

Buffer类及其实现

Buffer类是缓冲区的实现,类似于Java中的数组,也是用于存放和获取数据的。但它包含了一系列对于数组的快捷操作。

Buffer是一个抽象类,它的核心内容:

public abstract class Buffer {
    // Invariants: mark <= position <= limit <= capacity
    private int mark = -1;
    private int position = 0;
    private int limit;
    private int capacity;

    // 直接缓冲区实现子类的数据内存地址
    long address;
阅读全文 »

日志门面和日志框架实现

日志门面(Facade)把不同的日志系统的实现进行了抽象化,只提供了统一的日志使用接口。由于它只是一个接口,所以最终日志的格式、记录级别、输出方式等都要通过接口绑定的具体日志框架实现

image-20230612215155120

实际的项目开发中可能会使用到很多不同的框架,而这些框架又使用了不同的日志框架。我们希望所有的框架一律使用日志门面(Slf4j)进行日志打印,这时该怎么去解决?

  • logback直接实现了slf4j-api中的接口,通过接口实现的方式完成了门面的实现。
  • log4j2没有直接实现接口,需要适配器log4j-slf4j-impl
阅读全文 »

Docker安装

Docker之介绍与安装 - Qubernet - 博客园 (cnblogs.com)


镜像 image

如果我们要写一个比如论坛、电商这类的Java项目,那么数据库、消息队列、缓存这类中间件是必不可少的。**因此我们如果想要将一个服务部署到服务器,要提前准备好各种各样的环境,先安装好MySQL、Redis、RabbitMQ等应用,配置好了环境,再将我们的Java应用程序启动。**整个流程下来,光是配置环境就要浪费大量的时间,如果是大型的分布式项目,可能要部署很多台机器,项目上个线就要花几天时间,显然是很荒唐的。

而上述的MySQL、Redis、RabbitMQ等应用以及Java应用程序,可以一起被打包成一个镜像,整个镜像中环境都是已经配置好的状态,开箱即用。镜像就是一堆静态的模板,根据这个模板运行起来的就是容器。镜像一般需要拉取下来,是只读的。

阅读全文 »

简介

Spring的理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架

  • Spring是一个开源的免费框架
  • Spring是一个轻量级的、非侵入式的框架
  • 重要特性:IoC(控制反转)、AOP(面向切面编程)
  • 支持事务的处理。支持整合框架

image-20221121233807593

阅读全文 »

MyBatis

简介

MyBatis 是一款优秀的 持久层框架。它支持 定制化 SQL、存储过程以及高级映射

MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML注解 来配置和映射 原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为 数据库中的记录

  • 持久化

    • 持久化就是将程序的数据在 持久状态瞬时状态 转化的过程。

    • 由于内存有断电之后数据就会丢失的特点,有一些对象不能丢失,需要将其持久化。

  • 持久层

    • 完成持久化工作的代码块就是持久层。

传统的 JDBC 代码太复杂,MyBatis 简化了将数据存入数据库这一过程。MyBatis 将 sql 和代码分离,提高了可维护性;提供了映射标签,支持对象与数据库的字段关系的映射(ORM,Object Relation Mapping);提供 xml 标签,支持编写动态 sql

阅读全文 »

JavaBean

JavaBean是一个有如下特征的实体类

  • 必须有一个无参构造函数
  • 属性必须私有化
  • 必须有对应的get/set方法

一般用于和数据库的字段做映射

ORM(Object Relation Mapping,对象关系映射):

  • 表 —-> 类
  • 字段 —-> 属性
  • 行记录 —-> 对象

什么是MVC架构

  • M:Model 模型

    • 业务处理:Service层
    • 数据持久化:DAO(Data Access Object)层
  • V:View 视图

    JSP,用于展示数据,提供可供操作的请求

  • C:Controller 控制器

    Servlet,接收用户的请求,将请求交给业务层,控制视图的跳转

MVC三层架构

由架构示意图可知,由于JSP就是一种Servlet,因此控制器和视图会存在功能重合,为了易于维护和使用,做了人为规定:

  • Servlet专注于处理请求,以及控制视图跳转
  • JSP专注于展示数据

现象

Tomcat控制台提示:

信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

阅读全文 »

JSP概述

JSP(Java Server Pages)是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。JSP是一种Java Servlet主要用于实现Java Web应用程序的用户界面部分

JSP原理

阅读全文 »
0%