自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker入门

相当于为 Docker 准备底层运行所需的“地基”与“发动机”。这是 Docker 的软件本体和图形控制面板。它安装在 Windows 上,负责在前端接收操作指令,但后台会将容器任务直接交给 WSL 2 这个引擎去执行。网址在下面:二、在Linux上面实操(Ubuntu22.04)在 Ubuntu 22.04 上安装并配置 Docker 非常简单,直接打开 Ubuntu 终端,按照以下 4 步操作即可:第一步:更新系统并安装基础依赖Bash第二步:添加 Docker 官方 GPG 密钥与软件源创建密钥

2026-08-24 09:43:58 297

原创 Redis入门

本小节主要介绍NOSQL的一些特点及其与SQL关系型数据库的关系,NoSQL 全称通常被解释为 “Not Only SQL”(不仅仅是 SQL)。它指的是非关系型数据库。传统的关系型数据库(如 MySQL、Oracle)是用一张张“有行有列”的表格来存储数据的,并且表与表之间有着严格的关系(外键约束)。而 NoSQL 则是为了应对互联网爆发式增长的大数据、高并发需求而诞生的,它打破了传统表格的束缚,采用了更灵活的数据模型。

2026-07-25 22:22:00 298

原创 一篇文章搞定MybatisPlus

MybatisPlus是对Mybatis的增强,不与Mybatis矛盾,可实现无侵入编程。 MybatisPlus约定大于配置,遵循配置,就方便使用注解。1、引入依赖MyBatisPlus 官方提供了 starter,其中集成了 Mybatis 和 MybatisPlus 的所有功能,并且实现了自动装配效果。因此我们可以用 MybatisPlus 的 starter 代替 Mybatis 的 starter。2、定义Mapper接口并继承BaseMapper注意继承BaseMapper的时候要指定泛型。

2026-05-26 23:04:26 583

原创 一篇文章搞定MyBatis

MyBatis 是一款优秀的,用于简化 JDBC 开发。MyBatis 本是 Apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis。2013 年 11 月迁移到 Github。(持久层是负责将数据到保存到数据库的那一层代码;JavaEE 三层架构:表现层、业务层、

2026-05-10 21:34:07 602

原创 SpringMVC异常处理

import org// // // 1. 判断是否为运行时异常 (RuntimeException 及其子类) // if (ex instanceof RuntimeException) { // modelAndView.setViewName("/error1.html");// } // // 2. 否则视为编译时异常(受检异常) // else { // modelAndView.setViewName("/error2.html");

2026-04-19 12:48:31 369

原创 前端控制器初始化与执行主流程

所以上面继承体系图中继承了GenericServlet的类会覆盖它的init()方法,因为它是无参的。那么我们只需要找到DispatcherServlet到GenericServlet这个范围内有init方法即可,当然是从下往上找,我们在HttpServletBean可以看到它的init方法里面有这样一段:就是让它的后代做它想做的。HttpServletBean中的initBeanWrapper其实是一种模版方法,指定好模版,怎么实现不管,让子类去实现覆盖的。

2026-04-18 12:14:48 397

原创 Spring MVC全注解开发实现及其原理

import org//定义为核心配置类 @Configuration //组件扫描 @ComponentScan("com.itheima.controller") public class SpringMVCConfig2 {// 配置非自定义的bean public CommonsMultipartResolver multipartResolver() {} }

2026-04-14 08:42:04 576

原创 Spring MVC拦截器

import org//是否放行 true放行 } @Override public void postHandle(HttpServletRequest request , HttpServletResponse response , Object handler , ModelAndView modelAndView) throws Exception {} }

2026-04-10 08:32:27 483

原创 SpringMVC静态资源访问、annotation-driven的使用原理及数据响应模式

这样无论静态资源在哪都可以访问得到。

2026-04-05 23:18:06 593

原创 SpringMVC请求参数

RequestMapping可以由于所以请求,可以用在类上面,这些它下面的方法都要进行拼接路径,当然GetMapping也可以用在类上面,这样就指定了下面所有方法的请求方式了。

2026-03-31 09:22:30 419

原创 git实现重命名——实现远程和本地重命名

我之前将readme的文件写错了,我在本地改了,但是如何实现在远程仓库同步呢?现在是我本地的文件命名和远程不一样。

2026-03-30 23:19:03 499

原创 SpringMVC简介

当我们在SpringMVC容器中配置了一个自己的HandlerMapping,那么前端控制器DispatcherServlet就不会再加载它默认的四个实现了,以为此时的。不再等于空了,但是只是HandlerMapping不再加载默认的,如果HandlerAdapter等其他类型的没有自己配置的话,它依然还会加载。这里直接所有一起配了,注释里面有详细解释了,就不再过多赘述了。2、在web.xml配置前端控制器。3、配置Controlle控制器。最终都放到对应的List当中了。控制台成功打印,没有问题。

2026-03-27 23:00:11 948 1

原创 Spring整合Web环境实现思路

## 2.2实现1、定义监听器在里面加载加载Spring容器,且将Spring容器存储到ervletContext当中2、在Servlet中通过获取request,再通过request获取servletContext,由servletContext获取到我们之前set的Spring容器,进而通过Spring容器获取Service。

2026-03-24 21:41:14 630

原创 基于注解方式配置声明式事务

【代码】基于注解方式配置声明式事务。

2026-03-21 21:26:20 239

原创 Spring的xml方式声明式事务控制

而开启事务和提交事务又是在invoke方法执行的,所以而这个invoke方法又是属于TransactionInterceptor(实现了 MethodInterceptor),所以我们在配置的时候就通过Advisor来配置TransactionInterceptor,实际上声明式事务本质上就是AOP。在这里Dao层使用的框架是mybatis,mybatis底层是jdbc,jdbc需要connection,所以要数据源,配置的是DataSourceTransactionManager,且要指定数据源。

2026-03-08 22:30:38 597 2

原创 AOP注解方式实现及其原理

现在我们使用注解这样配置:将通知类交由Spring管理且配置织入(以前置方法为例)@Component将通知类交由Spring容器管理,@Aspect表示可以在这里配置切面,**@Before(“execution(* com.itheima.service.impl.(…结果:其实配置另外几个通知也是类似的:结果:所以参数名是:throwing = “e”,同时value和 pointcut实际上是一个东西,是为了方便我们是否指定参数的。

2026-03-06 22:43:59 623

原创 advisor的方式配置切面和xm方式配置AOP的原理解析

一句话来说就是配置一个固定通知和一个切点表达式就使用advisor,复杂的、灵活的配置就使用 aspect。这是使用BeanDefinitionRegistryPostProcessor来注册一个AspectJAwareAdvisorAutoProxyCreator的Bean,这也就是上面步骤的最终目的。在通知类型已经固定,不用人为指定通知类型时,可以使用 advisor 进行配置,例如后面要学习的 Spring。下面我们就以实现前置通知、后置通知、环绕通知的接口来举例说明,其他的也是同理类推。

2026-03-03 22:55:22 540

原创 AOP入门、五种通知类型及相关参数

AOP,Aspect Oriented Programming,面向切面编程,是对面向对象编程 OOP 的升华。OOP 是纵向对一个事物的抽象,一个对象包括静态的属性信息,包括动态的方法信息等。而 AOP 是横向的对不同事物的抽象,属性与属性、方法与方法、对象与对象都可以组成一个切面,而用这种思维去设计编程的方式叫做面向切面编程,通俗来说AOP就是可以抽取不同的属性、方法、对象,将它们融在一起。其中红色框里面的对象叫做目标对象,目标对象里面的方法叫做目标方法,绿色框的对象叫增强对象,对象里面的方法叫做增强方

2026-02-23 11:41:13 921

原创 @Import整合第三方框架原理

Spring 与 MyBatis 注解方式整合有个重要的技术点就是 @Import,第三方框架与 Spring 整合 xml 方式很多是凭借自定义标签完成的,而第三方框架与 Spring 整合注解方式很多是靠 @Import 注解完成的。

2026-02-16 09:18:30 975 1

原创 Spring注解方式整合Mybatis

其实到这就是与xml配置一样了,都是通过MapperScannerConfigurer.class来注册,只不过注解方式还导入了一个MapperScannerRegistrar,再由MapperScannerRegistrar注册MapperScannerConfigurer.class,而xml方式是直接配置MapperScannerConfigurer.class。当然我们也还可以发现。

2026-02-16 09:15:34 610

原创 Spring组件扫描原理解析

一样的逻辑定义definitionHolder,使用BeanDefinitionRegistry的registerBeanDefinition(definitionHolder进行注册Bean到BeanDefinitionMap当中,完结了。通过之前的学习我们知道只要是将Bean放到了BeanDefinitionMap中,那么就势必会经过Spring的那套Bean的生命周期,就势必会创建Bean。是否有一种似曾相识燕归来的感觉呢?直接进入this(),

2026-02-15 09:07:56 1290

原创 Spring注解开发——非自定义Bean的配置、Bean配置类和其他注解

/配置非自定义Bean//要使得方法被Sprng管理,当前类也要交由Spring管理@Component。

2026-02-14 08:13:29 1469

原创 Spring基本配置和注入配置注解使用

两种方式都可以注入,上面的几个标签都是这样,就不再逐一演示了。Driver一般是这样用得多。@Autowired@Autowired注解替换xml的方案:两种方式都可以注入,上面的几个标签都是这样,就不再逐一演示了。Driver一般是这样用得多。

2026-02-13 12:07:41 456

原创 Spring xml 方式整合第三方框架总结加案例

​ “http://www.springframework.org/schema/context”是命名空间,不过是虚拟的地址,在spring-context\5.3.7\spring-context-5.3.7.jar!上述步骤每一步都是紧密相连的,逻辑清晰,实际上并不难,不懂的代码是可以参考别的已用的,比如说是上一节我们讲的Contex。它也是虚拟地址,映射到spring-context\5.3.7\spring-context-5.3.7.jar!

2026-02-12 09:59:45 1345

原创 引入第三方框架命名空间(含源码剖析)

Driver。

2026-02-11 11:07:42 505

原创 Spring xml 方式整合MyBatis(含源码剖析)

整合主要是配好配置 SqlSessionFactoryBean 和 MapperScannerConfigurer。

2026-02-10 12:12:05 562

原创 Spring Bean的生命周期

注入单向对象引用属性时,从容器中 getBean 获取后通过 set 方法反射设置进去,如果容器中没有,则先创建被注入对象 Bean 实例(完成整个生命周期)后,在进行注入操作。1.要注入的属性在要创建bean的前面applicationContext.xml:测试:结果:直接从BeanDefinitionMap中拿了2.要注入的属性在要创建bean的后面applicationContext.xml:结果:在创建userService发现需要userDao属性但是BeanDefinitionMap中没

2026-02-08 12:20:43 443

原创 Lambda表达式

总结一下,实际上对于Lambda表达式就一句话,就是在里面写接口的实现。有Lamda表达式后不需要再建接口实现类,上面的代码将接口实现类删去依然可以运行;同时在调用接口时当然是不用再new一个接口实现类了。总之,Lambda表达式可以简化代码,在开发中也是经常使用。

2026-02-07 16:49:03 463

原创 Java动态代理

2.2创建接口(里面是用来定义要代理的方法)2.2创建用于生成代理对象的类(重点)这里面其实分清楚层次再加上看看源码其实并不难理解,首先整体上是通过createProxy这个静态方法来生成代理对象,需要传递被代理对象作为形参,其底层又是运用Proxy的newProxyInstance方法。

2026-02-06 09:10:53 547

原创 BeanPostProcessor:Bean后处理器

到最终缓存到名为 singletonObjects 单例池之前,中间会经过 Bean 的初始化过程,例如:属性的填充、初始方法 init 的执行等,其中有一个对外进行扩展的点 BeanPostProcessor,我们称为 Bean 后处理。跟上面的 Bean 工厂后处理器相似,它也是一个接口,实现了该接口并被容器管理的 BeanPostProcessor,会在流程节点上被 Spring 自动调用。简单来说Bean后处理器强调bean的初始化这些,bean工厂后处理器强调bean的创建。

2026-02-04 12:20:44 1371

原创 使用Spring的BeanFactoryPostProcessor扩展点完成自定义注解扫描

/设定在哪些类型上可以使用//设定作用的范围// 配置value属性,以代表bean的名字。

2026-02-03 16:58:20 605

原创 Spring的bean工厂后处理器和Bean后处理器

Spring 的后处理器是 Spring 对外开发的重要扩展点,允许我们介入到 Bean 的整个实例化流程中来,以达到动态注册BeanDefinition,动态修改 BeanDefinition,以及动态修改 Bean 的作用。Spring 主要有两种后处理器:BeanFactoryPostProcessor:Bean 工厂后处理器,在 BeanDefinitionMap 填充完毕,Bean 实例化之前执行;

2026-02-02 15:31:54 783

原创 SpringBean实例化的基本流程

Spring 容器在进行初始化时,会将 xml 配置的的信息封装成一个 BeanDefinition 对象,所有的BeanDefinition 存储到一个名为的 Map 集合中去,Spring 框架在对该 Map 进行遍历,使用反射创建 Bean 实例对象,创建好的 Bean 对象存储在一个名为的 Map 集合中,当调用方法时则最终从该 Map 集合中取出 Bean 实例对象返回。applicationContext.xml:此时由于xml中的userService没有传入属性,所以beanDefini

2026-01-25 11:19:49 202

原创 以配置非自定义bean来演示bean的实例化方式

/先加载xml文件// 以输入流来接收(这实际上是相当于静态方法)//// 再是创建构造器,无参构造//// 再是创建工厂。

2026-01-24 22:57:43 633

原创 Spring的命名空间

首先要加入要引入的东西的坐标(也就是pom文件中的依赖,以引入springmvc为例)其次是改Spring的配置文件:要引入mvc,只需要加三个地方(其实如果是Spring的组件的话都是类似的,可以复制粘贴,然后改不同的即可,不是Spring的组件就得自己去找命名空间及命名空间约束了)命名空间。

2025-12-27 23:05:06 638

原创 Spring中Bean的自动装配

如果是在注册成为bean的时候这个bean有需要别的bean,以前是通过标签来将需要使用的bean引入进来的,那么有了自动装配之后就可以使用autowire属性来实现bean的自动装配了,而不再使用标签了,那么autowire又分为byName和byType装配,即bean的name装配和依据bean的类型装配,下面就来介绍这两种装配方式。

2025-12-09 22:14:01 415

原创 Spring中Bean注入方式和注入类型

3、在外面定义,List中直接引用。2、在外面定义,Set中直接引用。1、直接在Set中定义。

2025-12-08 23:15:40 467

原创 Spring中Bean的实例化

Bean的实例化方法有两种:直接使用构造函数,通过工厂方式实例化Bean(Bean工厂调用Bean工厂)。

2025-12-07 12:26:04 827

原创 Spring中Bean的配置(一)

● singleton:单例,默认值,Spring 容器创建的时候,就会进行 Bean 的实例化,并存储到容器内部的单例池中,每次 getBean 时都是从单例池中获取相同的 Bean 实例;● prototype:原型,Spring 容器初始化时不会创建 Bean 实例,当调用 getBean 时才会实例化 Bean,每次 getBean 都会创建一个新的 Bean 实例。

2025-12-05 12:18:35 538

原创 Spring中Bean的配置:id和name(别名)属性

【代码】Spring中Bean的配置:id和name(别名)属性。

2025-11-29 13:07:06 445

空空如也

空空如也

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

TA关注的人

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