自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 【再探】Java — 面向对象编程特性与内部类

封装、继承、多态及抽象是面向编程的四大特性。

2024-04-24 22:18:04 351

原创 【再探】设计模式-设计原则

设计原则是在编写程序时引导程序员遵循的一些原则和准则。这些原则旨在提高代码的可读性、可维护性、可扩展性和可重用性。

2024-04-21 01:28:48 977

原创 mybatis 入门

MyBatis是一款持久层框架,免除了几乎所有的JDBC代码、参数及获取结果集工作。可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO为数据库中的记录。

2024-04-15 21:26:51 885

原创 Spring Boot(二)— 自定义Spring Boot Starter

在Spring Boot中,自定义Spring Boot Starter是一个常见且强大的功能,它允许开发者为特定的功能或库创建自己的自动配置,从而简化集成过程。

2024-04-14 14:41:40 1000

原创 Spring Boot(一)— Maven

Maven是一个跨平台的项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。通过其项目对象模型(POM),可以自动下载和管理项目所需的库和插件。

2024-03-28 22:33:39 1657 1

原创 Spring MVC(四)— CORS、HTTP缓存及MVC配置

Spring CORS 允许开发者配置哪些域可以访问其Web应用的资源。HTTP缓存是提高Web应用程序性能的一种重要技术。通过实现WebMvcConfigurer接口来对MVC容器进行配置。

2024-03-25 18:42:23 614

原创 Spring MVC(三)- 处理器与注解

Spring MVC 用@Controller及@RestController 注解来标志(自动扫描并注册成bean)该类是一个控制器容器类,在该类下,使用@RequestMapping及其扩展注解来定义处理器。使用注解,可以定义请求的映射、请求的输入、异常处理等。

2024-03-22 12:17:40 733

原创 Spring MVC(二)-过滤器与拦截器

过滤器和拦截器在职责和使用场景上存在一些差异。

2024-03-20 19:07:21 927

原创 Spring MVC(一)— DispatcherServlet

DispatcherServlet 是Spring MVC框架的HTTP 请求处理器的中央调度器。它具有以下的功能:1)基于IoC容器JavaBean配置机制。2)使用HandlerMappingl来实现请求到处理器的路由映射。3)使用HandlerAdapter 来处理不同的处理器。4)处理器抛出的异常解决策略由HandlerExceptionResolver指定。5)视图解析策略可以通过ViewResolver实现指定。6)文件上传策略通过MultipartResolver来确

2024-03-15 02:46:18 918

原创 Spring AOP(二) — 底层组件

Spring AOP 是通过动态代理的方式来实现,主要是通过Pointcut、Advice、Advisor及ProxyFactoryBean 等接口来创建代理对象。在IoC容器中,Advice 是一个bean(这样可以在通知中使用其他的bean),而Pointcut虽然不是一个Bean,但是它所在的Aspect(切面)是一个bean。推荐Spring AOP在IoC容器中通过@AspectJ注解的形式来使用。

2024-03-07 00:45:17 922

原创 Spring AOP(一) — 基础语法及原理

Spring AOP 是Spring中用于实现面向切面编程的一个模块。它运行开发者定义横切关注点,这些关注点会跨越多个模块、类或方法。通过AOP,开发者可以将这些横切关注点从业务逻辑中分离出来,使代码更加清晰、可维护,并降低模块间的耦合度。

2024-03-05 18:57:20 927

原创 Spring Expression Language (SpEL)

Spring 表达语言(SpEL),支持在运行时查询和操作对象图,可以用于数据绑定、属性访问、方法调用等。使用SpEL可以简化代码并提高应用程序的可维护性。

2024-02-29 23:36:33 995

原创 Spring 类型转换、数值绑定与验证(三)— Formatting 与 Validation

Formatting,在Spring中用于格式化数据及根据地域展示不同格式的数据。org.springframework.validation.Validator 是用来验证对象实例属性的接口。JSR 303(Bean Validation) 规范定义了一套用于JavaBean参数校验的标准。javax.validation.Validator 也是用于对指定的对象进行校验。

2024-02-28 20:37:06 756

原创 Spring 类型转换、数值绑定与验证(二)—PropertyEditor与Conversion

Spring 中,属性类型转换是在将数值绑定到目标对象时完成的。例如在创建ApplicationContext 容器时,将XML配置的bean 转换成Java类型对象,主要是借助了PropertyEditor类,而在Spring MVC 的Controller的请求参数转化为特定类型时,我们也可以自定义转化器Convert并注册来完成转换。以下是Spring相关源码分析。

2024-02-22 20:27:17 897

原创 Spring 类型转换、数值绑定与验证(一)— DataBinder

DataBinder 是Spring用于数据绑定、类型转换及验证的类。使用场景有:1)xml配置文件定义bean,Spring 内部使用DataBinder 来完成属性的绑定;2)Web请求参数绑定,在Spring MVC 中,Controller的方法参数通常会自动绑定到请求参数中,主要用DataBinder来完成。3)自定义数据绑定,可手动创建DataBinder 对象,为其设置校验器和转换器,来满足特定需求。

2024-02-21 19:50:09 1035

原创 Spring Resource

java.net.URL 类可用于访问带有各种URL前缀的资源,但是对于访问一些资源还是不够方便。比如不能从类路径或者相对于ServletContext来获取资源。而Spring 的Resource接口,则可以通过类路径等方式来访问资源。

2024-02-16 17:47:47 921

原创 Spring IoC容器(四)容器、环境配置及附加功能

本文内容包括容器的@Bean 及 @Configuration 注解的使用、容器环境的配置文件及容器的附加功能(包括国际化消息、事件发布与监听)。

2024-02-07 18:31:53 1058 1

原创 Spring IoC容器(三)注解

Spring 除了支持通过XML形式配置Bean外,也支持通过注解的形式来配置Bean。需要简洁、易于维护和低耦合度场景下,注解是更好的选择;需要可读性强、可扩展性和分离关注点的场景下,XML是一个更好的选择。

2024-02-05 20:35:35 855

原创 Spring IoC容器(二)Bean的自定义及容器的扩展

Spring提供了一些接口来让我们定制bean 及扩展容器。

2024-02-03 23:33:09 929

原创 MySQL EXPLAIN查询执行计划

EXPLAIN 可用来查看SQL执行计划,常用来分析调试SQL语句,来使SQL语句达到更好的性能。

2024-02-02 22:06:10 970

原创 Spring IoC容器(一)

IoC,Inversion of Control 控制反转,是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作,这个过程从本质上来说是bean本身的反向,因此称为反向控制。

2024-01-29 22:14:07 883

原创 AspectJ语法

AspectJ 通过连接点向Java添加一些新的程序元素来扩展Java,是Java面向切点一种实现。其主要包括连接点、切点、建议、切面及类型间声明。

2024-01-18 20:34:15 811

原创 MySQL索引

索引是可以高效获取数据的一种机制(数据结构)。提高数据获取效率,降低数据排序的成本,提高排序效率。缺点就是降低了更新表的速度,占用空间。

2024-01-10 18:16:26 916

原创 AspectJ 基础

前两篇AspectJ入门的文章大致的介绍了AspectJ,本文更完整、更详细的介绍AspectJ的基础知识。包括了切点、连接点、类型间声明及thisJoinPoint的基础知识,来更好的理解AspectJ的语法。

2024-01-09 20:08:33 427

原创 B+树索引及其原理

MySQL索引的底层结构是B+树,为什么它会选择这个结构?联合索引是怎么实现的?最左侧匹配原则的原理是什么?本文将一一解答这些疑惑。

2024-01-06 15:41:13 953

原创 AspectJ入门(二)— 应用

AspectJ便于调试、测试和性能调整工作。定义的行为范围从简单的跟踪到分析,再到应用程序内部一致性到测试。AspectJ可以干净地模块化这类功能,从而可以在需要时轻松地启用和禁用这些功能。

2024-01-04 21:58:30 836

原创 jdk与cglib动态代理及原理

Spring的AOP在运行时多以jdk及cglib动态代理来实现

2023-12-29 23:44:26 841

原创 AspectJ入门(一)

AspectJ是一个面向切面的框架,扩展了Java语言。有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。Spring的AOP底层也是用了这个框架。AOP可以拦截指定的方法并对方法增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离。

2023-12-25 21:16:53 1023

原创 MySQL的hash索引

MySQL有B+Tree 索引及Hash索引等索引类型,B+Tree索引类型是MySQL采用最多的索引类型。Hash索引使用场景比较有限,文章将从Hash索引的底层结构出发,来分析Hash索引的利与弊。

2023-12-22 19:23:35 1242

原创 MySQL锁机制

MySQL的锁机制用于管理事务对共享资源的并发访问,实现事务的隔离级别。

2023-12-18 19:43:00 833

原创 TS Option类型与Promise

用专门的数据类型描述异常,能便于串联可能出错的操作。Option类型就是这张容器,在没有值时也能串联操作。js中常用Promise来处理异步调用,本文将手动实现Promise的部分功能,来探索这个类型的处理逻辑。

2023-12-16 12:56:23 520

原创 SQL事务管理

事务管理是针对数据库的一组操作。由一条或多条SQL语句组成,这些语句在逻辑上具有强烈的相关性,如果其中一条语句无法执行,那么所有的语句都不会执行。

2023-12-14 20:17:47 1035

原创 SQL触发器、游标与约束

触发器是一个特殊的存储过程,由事件触发操作。这些事件包括:INSERT、UPDATE、DELETE。不能作用于视图,只能作用于表。游标是一种能从多条数据记录的结果集中每次提取一条记录的机制。

2023-12-12 19:00:28 417

原创 TS条件类型、断言及名义类型

文章将讨论处理类型的几个高级模式,包括模拟名义类型的类型烙印、利用条件类型的分配性质在类型层面操作类型,以及安全地扩展原型。

2023-12-10 12:24:48 960

原创 TS型变与对象类型进阶

子类型:给定两个类型A和B,假设B是A的子类型,那么在需要A的地方都可以放心使用B。计作 A : B (A是B的超类型)。

2023-12-09 16:52:01 986

原创 SQL存储过程和视图

存储过程有三种类型变量:1)IN,输入参数;2)OUT,输出参数;3)INOUT,输入/输出参数。其基本语法如下;1)语句必须在BEGIN与END之间。2)DECLARE 来声明变量,默认值在其后面加DEFAULT 值。3)改变变量值,使用SET 变量=值。4)调用使用CALL。5)mysql 不支持 CREATE OR REPLACE PROCEDURE 语法,可以用DROP PROCEDURE IF EXISTS 存储过程名;来删除特定的存储过程。BEGINEND;

2023-12-08 18:08:13 854

原创 TS类和接口

不自己动手实现一两个设计模式怎么算得上是讨论面向对象编程呢?”

2023-12-01 02:27:39 533

原创 idea 2023使用技巧(一)

IntelliJ IDEA在业界被公认为最好的java开发工具之一。它能给你良好的开发体验。

2023-11-28 23:06:32 1947

原创 TS 函数及多态

TS 能推导出函数体中的类型,但多数情况下无法推导出参数的类型,只有少数特殊情况下能根据上下文推导参数的类型。返回类型能推导出,不过也可以显式注解。

2023-11-28 00:03:55 638

原创 Log4j

通过Log4j,我们可以控制日志信息输送到目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器。我们可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能更加细致地控制日志的生成过程。

2023-11-22 23:52:09 949

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除