自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringIOC加载过程

Spring IOC容器容器启动时首先解析配置生成BeanDefinition并注册到BeanFactory;然后通过BeanFactoryPostProcessor修改Bean定义;接着实例化Bean并进行依赖注入;最后执行初始化流程(包括Aware接口回调、BeanPostProcessor处理及自定义初始化方法)。整个生命周期包括解析注册、实例化、初始化和销毁四个阶段,通过扩展点(BeanFactoryPostProcessor、BeanPostProcessor等)实现灵活控制,完成对Bean的托管

2025-12-03 00:23:20 884

原创 Spring AOP详解

Spring AOP是面向切面编程的核心思想,通过动态代理实现对业务逻辑的隔离和增强。它包含切面、连接点、通知等核心概念,提供五种通知类型(@Before/@After等)实现方法不同位置的增强。实现方式包括JDK动态代理(基于接口)和CGLIB代理(基于继承),Spring自动根据目标类选择代理策略。典型应用场景包括日志记录、权限控制、事务管理等横切关注点。相比AspectJ,Spring AOP更轻量但功能较局限,适合方法级切面需求。通过代理对象织入增强逻辑,在不修改源码的情况下实现功能扩展。

2025-12-03 00:05:22 680

原创 Spring MVC+javamail实现邮件发送

设置 —> 账户 — > 开启POP3/STMP服务,然后得到一个授权码。applicationContext.xml文件。mail.properties文件。

2024-09-20 16:48:56 498

原创 Spring MVC 请求流程详细介绍

下面对出现的一些组件进行详细的介绍:(1) 前端控制器DispatcherServlet。作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。(2) 处理器映射器HandlerMapping。作用:根据请求的url查找Handler。(3) 处理器适配器HandlerAdapter。作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。(4) 处理器Handler。

2024-09-20 16:48:12 1018

原创 SpringBoot最常用的注解(最全面)

这些方法通常是相似的,而且比较繁琐。在使用时,Lombok会根据类的属性自动生成toString()方法,这个方法将输出类的名称和所有属性的名称和值。在Spring框架中,如果一个方法需要执行一些比较耗时的操作,如果这个方法是在主线程中执行,就会导致主线程被阻塞,用户界面无法响应用户的操作。在Spring框架中,如果一个方法的返回结果是固定的,而且这个方法的执行比较耗时,我们可以使用@Cacheable注解将这个方法的返回结果缓存起来,下次执行这个方法时直接从缓存中获取结果,避免重复执行。

2024-09-20 16:46:50 1677

原创 Spring Boot2核心技术(核心功能六)-原理解析

starter-pom引入 autoconfigurer 包autoconfigure包中配置使用中EnableAutoConfiguration 的值,使得项目启动加载指定的自动配置类编写自动配置类 xxxAutoConfiguration -> xxxxProperties@Bean......引入starter--- xxxAutoConfiguration --- 容器中放入组件 ---- 绑定xxxProperties ----配置项。

2024-09-06 19:45:32 1214

原创 Spring Boot2核心技术(核心功能五)-指标监控

未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。

2024-09-06 19:44:15 1635

原创 Spring Boot2核心技术(核心功能四)-单元测试

assumingThat 的参数是表示条件的布尔值和对应的 Executable 接口的实现对象。JUnit 5 可以通过 Java 中的内部类和@Nested 注解实现嵌套测试,从而可以更好的把相关的测试方法组织在一起。等注解,指定入参,我们将可以使用不同的参数进行多次单元测试,而不需要每新增一个参数就新增一个单元测试,省去了很多冗余代码。参数化测试是JUnit5很重要的一个新特性,它使得用不同的参数多次运行测试成为了可能,也为我们的单元测试带来许多便利。JUnit5的注解与JUnit4的注解有所变化。

2024-09-06 19:43:11 1569

原创 Spring Boot2核心技术(核心功能三)-数据访问

(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatis plus 官网建议安装MybatisX插件。

2024-09-04 13:51:07 1827

原创 Spring Boot2核心技术(核心功能二)-Web开发

Faviconfavicon.ico 放在静态资源目录下即可。spring:# mvc:# static-path-pattern: /res/** 这个会导致 Favicon 功能失效可以自动类型转换与格式化,可以级联封装。/*** 姓名: * 年龄: * 生日:

2024-09-04 13:49:52 2193

原创 Spring Boot2核心技术(核心功能一)-配置文件

YAML 是 "YAML Ain't Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件。

2024-09-04 13:48:45 365

原创 Spring Boot 核心技术(基础入门三)-了解自动配置原理

如何使用Java读取到properties文件中的内容,并且把它封装到JavaBean中,以供随时使用;SpringBoot默认会在底层配好所有的组件。但是如果用户自己配置了以用户的优先。条件装配:满足Conditional指定的条件,则进行组件注入。代表当前是一个配置类。项目或者页面修改以后:Ctrl+F9;指定扫描哪些,Spring注解;简化JavaBean开发。

2024-09-03 16:55:27 1600

原创 Spring Boot核心技术(基础入门二)-SpringBoot2入门

需求:浏览发送/hello请求,响应 Hello,Spring Boot 2。把项目打成jar包,直接在目标服务器执行即可。直接运行main方法。

2024-09-03 16:54:42 217

原创 Spring Boot核心基础(基础入门一)-Spring与SpringBoot

基于Java8的一些新特性,如:接口默认实现。SpringBoot是简化Spring技术栈的快速开发脚手架。SpringBoot是整合Spring技术栈的一站式框架。能快速创建出生产级别的Spring应用。提出微服务完整概念。

2024-09-03 16:52:54 848

原创 Spring MVC+javamail实现邮件发送

设置 —> 账户 — > 开启POP3/STMP服务,然后得到一个授权码。applicationContext.xml文件。mail.properties文件。

2024-08-18 20:09:23 400

原创 Spring MVC 请求流程详细介绍

下面对出现的一些组件进行详细的介绍:(1) 前端控制器DispatcherServlet。作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。(2) 处理器映射器HandlerMapping。作用:根据请求的url查找Handler。(3) 处理器适配器HandlerAdapter。作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。(4) 处理器Handler。

2024-08-18 20:07:58 637

原创 MySQL 数据库查询与数据操作:使用 ORDER BY 排序和 DELETE 删除记录

这是为了防止SQL注入,这是一种常见的网络黑客技术,可以破坏或滥用您的数据库。:WHERE子句指定应删除哪些记录。如果省略WHERE子句,将删除所有记录!通常认为,转义任何查询的值都是一种良好的做法,甚至在删除语句中也是如此。这是必需的,以使更改生效,否则不会对表格进行更改。关键字默认按升序排序。要按降序排序结果,使用。语句按升序或降序对结果进行排序。关键字以降序排序结果。

2024-08-17 16:07:48 665

原创 Docker 部署MySQL

旧版本的字符集格式与8.0版本是有出入的,执行下面3个SQL的查询结果,即可校正MySQL字符集为8.0格式。

2024-08-17 16:07:16 962

原创 Mysql 事务的基础知识

事务时数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样我们就可以保证已提交到数据库的修改不会因为系统崩溃而丢失。mysql 数据库目前只有 InnoDB 存储引擎是支持事务的。事务:一组逻辑操作单元,使数据库从一种状态变换到另一种状态。事务处理的原则:保证所有操作都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。

2024-08-17 16:06:42 1009

原创 Mysql 索引设计原则

比如某些字段已经存在于联合索引中了,就不在需要单独创建索引。又或者某个字段已经创建了唯一索引,则无需在定义一个普通索引。

2024-08-17 16:05:56 989

原创 Java 数据类型详解与类型转换技巧

基本数据类型指定变量值的大小和类型,它没有额外的方法。类型转换是将一个原始数据类型的值赋给另一种类型的操作。数据类型用于存储单个字符。字符必须用单引号括起来,如 ‘A’ 或 ‘c’。字符串在 Java 中被广泛使用,它是一种非基本数据类型,具有丰富的操作方法。数据类型用于存储字符序列(文本)。运算符用于对变量和值执行操作。

2024-08-16 16:15:18 399

原创 Java 运算符详解与字符串处理技巧

在 Java 中,字符串实际上是一个对象,它包含可以对字符串执行某些操作的方法。比较运算符用于比较两个值(或变量)。这在编程中很重要,因为它帮助我们找到答案并做出决策。0 是字符串中的第一个位置,1 是第二个位置,2 是第三个位置。运算符可以在字符串之间使用以将它们合并。请注意,我们添加了一个空文本(” “)以在打印时在。避免此问题的解决方案是使用反斜杠转义字符。该参考包含所有字符串方法的描述和示例。在下面的示例中,我们使用赋值运算符(算术运算符用于执行常见的数学运算。反转结果,如果结果为真,则返回假。

2024-08-16 16:14:45 492

原创 深入理解 Java 循环结构:while、do while、for 和 for-each 循环

循环是一种方便的语法,用于遍历数组和集合中的元素。如果您只需要遍历数组中的元素,而不需要修改它们的值,那么。循环可以执行一个代码块,只要达到指定的条件。循环很方便,因为它们节省时间,减少错误,并使代码更易读。此循环将在检查条件是否为真之前执行一次代码块,然后只要条件为真,它就会重复执行循环。注意:不要忘记增加条件中使用的变量,否则循环永远不会结束!您还可以将一个循环嵌套在另一个循环内。不要忘记增加条件中使用的变量,否则循环永远不会结束!,专门用于遍历数组和集合中的元素。及更高版本中,还可以。

2024-08-16 16:14:11 1177

原创 Java 数学运算与条件语句全解析

因为它由三个操作数组成。它可以用来用一行代码替代多行代码,并且最常用于替代简单的。当找到匹配项并完成任务时,到了休息的时候了。没有更多测试的必要。Java 的 Math 类 拥有许多方法,允许您在数字上执行数学任务。可以节省大量的执行时间,因为它“忽略” 了在。语句选择要执行的多个代码块之一。这将停止更多代码和块内部的。块中的最后一条语句,它就不需要。还有一种称为三元运算符的简写。块中的所有其余代码的执行。语句相比,您可以使用。

2024-08-16 16:13:34 550

原创 Java break、continue 详解与数组深入解析:单维数组和多维数组详细教程

数组是一种强大的工具,可用于存储和组织数据。它们允许您使用单个变量名访问多个值。

2024-07-03 19:14:22 433

原创 深入了解 Java 方法和参数的使用方法

方法是一块仅在调用时运行的代码。您可以将数据(称为参数)传递到方法中。方法用于执行特定的操作,它们也被称为函数。方法是Java编程中一个重要的概念,它们允许您重用代码,提高代码的结构化和可读性,并将其分解成更小的模块。方法参数用于将信息传递给方法。可以向方法传递任意数量的参数。方法可以返回一个值。方法内部可以使用if…else语句。

2024-07-03 19:13:39 1058

原创 深入理解 Java 方法重载与递归应用

方法重载允许在同一个类中定义多个具有相同名称的方法,但参数列表必须不同。重载可以使代码更加简洁易读,提高代码的可重用性。重载时需要注意返回值类型、访问权限、static 和 final 修饰符等限制。

2024-07-03 19:13:07 664

原创 深入解析 Java 面向对象编程与类属性应用

面向对象编程 (OOP) 是一种编程范式,它将程序组织成对象。对象包含数据和操作数据的方法。Java 是一种面向对象的编程语言,这意味着它围绕着类和对象构建。类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。对象 是类的实例,具有特定的属性值和方法实现。类 是对象的蓝图,定义了对象的属性和方法。

2024-07-03 19:12:32 408

原创 深入剖析 Java 类属性与类方法的应用

Java 类方法 是在类内声明的代码块,用于执行特定的操作。它们类似于函数,但与类本身相关联,而不是与类的实例相关联。在这个示例中,x 属性是私有的,但可以通过 getX() 和 setX() 方法来访问和修改。Java 类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。

2024-07-03 19:12:01 647

原创 Java 构造函数与修饰符详解:初始化对象与控制权限

Java 构造函数 是一种特殊的类方法,用于在创建对象时初始化对象的属性。它与类名相同,并且没有返回值类型。Java 修饰符 用于控制类、属性、方法和构造函数的访问权限和行为。

2024-07-02 16:59:21 808

原创 深入理解 Java 修饰符与封装:访问权限、行为控制与数据隐藏

私有变量只能在同一类中访问(外部类无法访问)。但是,如果我们提供了公共的 get 和 set 方法,就可以访问它们。Java 修饰符 用于控制类、属性、方法和构造函数的访问权限和行为。封装 的含义是确保敏感数据对用户隐藏。get 方法 返回变量值,而 set 方法 设置值。Get 和 Set 方法。// 输出 “John”

2024-07-02 16:58:05 443

原创 Java 包和 API 深度解析:组织代码,避免命名冲突

要使用 Scanner 类,请创建该类的对象,并使用 Scanner 类文档中提供的任何可用方法。在前面的例子中,我们使用了 java.util 包中的 Scanner 类。Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。这意味着您可以导入单个类(以及其方法和属性),或者导入包含属于指定包的所有类的整个包。在上面的示例中,java.util 是一个包,而 Scanner 是 java.util 包的一个类。在上面的例子中编译包时,将创建一个名为“mypack”的新文件夹。

2024-07-02 16:57:32 512

原创 Java 继承与多态:代码重用与灵活性的巧妙结合

假设有一个名为 Animal 的超类,它具有一个名为 animalSound() 的方法。继承允许我们从另一个类继承属性和方法。多态使用这些方法执行不同的任务。在 Java 中,可以从一个类继承属性和方法到另一个类。多态 意味着“多种形式”,它发生在我们有许多通过继承相互关联的类时。如果不想让其他类从一个类继承,可以使用 final 关键字。要从一个类继承,使用 extends 关键字。子类(child): 从另一个类继承的类。何时以及为何使用“继承”和“多态”?超类(parent): 被继承的类。

2024-07-02 16:56:54 589

原创 Java 异常处理与正则表达式详解,实例演练及最佳实践

正则表达式是一系列字符,形成一个搜索模式。当你在文本中搜索数据时,可以使用这个搜索模式描述你要查找的内容。正则表达式可以是单个字符,也可以是更复杂的模式。Java没有内置的正则表达式类,但我们可以导入java.util.regex包来使用正则表达式。Pattern类 - 定义要在搜索中使用的模式Matcher类 - 用于搜索模式PatternSyntaxException类 - 指示正则表达式模式中的语法错误。

2024-07-01 22:03:02 1063

原创 Java 包装类:原始数据类型与迭代器

Iterator 接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素。它支持 hasNext() 和 next() 方法,用于检查是否存在下一个元素以及获取下一个元素。注意: 在使用 Iterator 删除元素时,不要使用集合的 for 循环或 for-each 循环,因为这会导致集合大小发生变化,并可能导致 Iterator 出现异常。Iterator 是 Java 中用于遍历集合的强大工具。它提供了灵活的迭代方式,并支持元素的删除。Java 包装类提供了将原始数据类型用作对象的方法。

2024-07-01 22:02:23 457

原创 Java 枚举(Enums)解析:提高代码可读性与易维护性

/ 接口// 接口方法(没有具体实现体)// 接口方法(没有具体实现体)接口是 Java 中重要的概念,它们可以帮助您编写更安全、更可重用、更灵活和更易于维护的代码。

2024-07-01 22:00:14 576

原创 Java 抽象类与方法:实现安全性与代码重用

在 Java 中,可以嵌套类(即类内部的类),称为内部类。嵌套类的目的是将属于一起的类分组,从而使您的代码更可读和可维护。抽象类和方法是 Java 中重要的概念,它们可以帮助您编写更安全、更可重用和更易于维护的代码。

2024-07-01 21:58:46 556

原创 Java 日期和时间 API:实用技巧与示例 - 轻松处理日期和时间

Scanner 类用于获取用户输入,它位于 java.util 包中。

2024-07-01 21:57:29 902

原创 Java ArrayList 与 LinkedList 的灵活选择

LinkedList 是一种灵活的数据结构,可以有效地执行某些操作。如果您需要经常插入和删除元素,LinkedList 是一个不错的选择。ArrayList 是 Java 中常用的数据结构,它可以存储各种类型的数据,并且可以根据需要调整大小。Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。LinkedList 类与 ArrayList 类相似,但它们之间也有一些重要的区别。从列表的开头删除元素。从列表的末尾删除元素。获取列表开头的元素。获取列表末尾的元素。

2024-06-30 18:17:47 331

原创 Java HashMap 和 HashSet 的高效使用技巧

HashMap 的优势在于它可以使用任何类型作为键,并且查找速度很快。HashMap 是一种强大的数据结构,可用于存储各种类型的数据。它具有快速查找速度和灵活的键值对存储机制,使其成为许多应用程序的理想选择。HashSet 是一种非常有用的数据结构,可用于存储各种类型的数据。它具有快速查找速度和无序的特点,使其成为许多应用程序的理想选择。HashMap 可以存储任何类型的键和值。HashSet 是一个无序集合,其中每个元素都是唯一的。HashSet 可以存储任何类型的元素。

2024-06-30 18:15:49 468

后端工程师非常全面的面试经典总结

后端工程师非常全面的面试经典总结

2024-08-17

XX项目-系统测试用例模板

XX项目-系统测试用例模板

2024-08-17

Linux介绍及常用命令及相关操作(全)

Linux介绍及常用命令及相关操作(全)

2024-08-17

Java 多线程基础笔记

Java 多线程基础笔记

2024-08-17

涵盖了项目管理中的重要方面,有助于确保项目的顺利进行和成功完成

项目管理资源描述是对项目中所需各类资源的总称,包括人力、物力、财力、时间、风险、沟通、质量、成本、技术和环境等。这些资源对于项目的顺利推进和成功实现目标具有重要意义。项目经理需要全面规划和整合这些资源,确保项目在规定的时间、质量和成本范围内完成。在项目实施过程中,项目经理还要关注资源的有效配置、持续优化和持续改进,以实现项目成功。 目管理涉及多个方面的资源,项目经理要善于整合和利用这些资源,实现项目目标。同时,项目经理还需关注项目内外部环境变化,不断调整和优化项目策略,确保项目成功。 项目管理资源描述涉及多个方面,项目经理需全面关注和整合这些资源,以实现项目成功。在项目过程中,项目经理还要关注资源的有效配置、持续优化和持续改进,确保项目的成功完成。

2024-01-29

空空如也

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

TA关注的人

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