- 博客(142)
- 收藏
- 关注
原创 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(一)— 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容器(一)
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
原创 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
原创 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 函数及多态
TS 能推导出函数体中的类型,但多数情况下无法推导出参数的类型,只有少数特殊情况下能根据上下文推导参数的类型。返回类型能推导出,不过也可以显式注解。
2023-11-28 00:03:55 638
原创 Log4j
通过Log4j,我们可以控制日志信息输送到目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器。我们可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能更加细致地控制日志的生成过程。
2023-11-22 23:52:09 949
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人