三大自动注入相关注解的分析和对比
自动注入相关注解
@Autowired
在使用Spring进行项目开发的时候,会大量使用到自动装配,那自动装配是什么呢?简单来说:Spring
利用依赖注入(DI)功能,完成SpringIOC容器中各个组件之间的依赖关系赋值管理。
@Autowired
是一个Spring框架的原生注解,它可以对类成员变量、方法及构造函数进行标注,让
spring 完成 bean 自动装配的工作,是 Spring
框架中用于实现依赖注入(Dependency Injection, DI)
的关键注解
自动将容器中已创建的 Bean 注入到当前 Bean 的字段、构造方法或
setter 方法中
避免手动创建对象,实现松耦合的组件协作
遵循 “控制反转(IoC)” 原则,让容器管理对象生命周期
使用@Autowired 时候,容器启动的扫描流程如下:
Spring容器在启动时会自动扫描并管理所有带有
@Component、@Service、@Repository
和 @Controller...
Spring Boot part14-数据访问之整合SSM场景及其自动配置原理
Spring Boot 3 整合 SSM
场景进行数据访问
熟悉 SSM 框架
SSM 框架简介
SSM 框架是 Spring、Spring MVC 和 MyBatis 三个框架的整合,是 Java
企业级开发中经典的技术栈组合。其中:
Spring
提供了依赖注入(DI)和面向切面编程(AOP)等核心功能,用于管理对象生命周期和业务逻辑分层
Spring MVC 是基于 MVC 设计模式的 Web
框架,负责处理 Web 请求和响应
MyBatis 是持久层框架,用于实现数据库操作的 ORM
映射
Spring Boot 3 整合 SSM 的优势很明显
Spring Boot 3 对 SSM 框架的整合带来了以下核心优势:
自动化配置:通过 Starter 依赖自动配置
Spring、Spring MVC 和 MyBatis 的基础环境
简化部署:内置 Tomcat 等容器,可直接打包为可执行
JAR
性能优化:基于 Spring 6 的响应式编程模型,支持
Reactive Stream
微服务支持:天然适配...
Spring Boot part13-全面接管Spring MVC
全面接管 SpringMVC 的思路
SpringBoot 默认配置好了 SpringMVC 的所有常⽤特性。
在 SpringBoot 中,全面接管 SpringMVC
配置的思路是通过禁用默认配置并完全自定义所有 MVC
行为。这是一个高级用法,适用于需要对 SpringMVC 进行深度定制的场景。
全面接管 SpringMVC 的核心步骤如下:
创建一个配置类,实现WebMvcConfigurer接口
使用@EnableWebMvc注解禁用 SpringBoot 的默认 MVC
配置
重写WebMvcConfigurer接口中的方法来定义所有需要的 MVC
行为,WebMvcConfigurer组件定义MVC的底层行为
回忆一下配置类的三种自定义方式
全自动
直接编写控制器逻辑
全部使用自动配置默认效果
手自一体
@Configuration + 配置 WebMvcConfigurer +
配置...
Spring Boot part12-嵌入式容器
前言
Spring Boot
的目标是构建“非常容易创建、独立、产品级别的基于Spring的应用”。这些应用是“立即可运行的”。在这个过程中,完全没有代码生成,不需要配置任何特殊的XML配置,为了这个目标,Spring
Boot 在 Spring 4.0
框架之上提供了很多特性,帮助应用以“约定优于配置”“开箱即用”的方式来启动应用并运行上下文。
Spring Boot 同样改变了一个传统的 Web
应用服务的启动流程和部署方式。通过自动配置机制,Spring Boot
提供了一个嵌入式的运行时容器环境,并使用代码注解的方式在代码中将 URL
服务地址映射到 Controller 的方法完成服务映射。
所以,开发者不再需要关心传统容器(如
Tomcat)中web.xml的配置,同时实现容器的具体技术都是可替换及可更改的,这些技术以插件化的Starter组件方式在运行时加载到
Spring...
Butterfly主题常见的标签外挂
引用自官方文档,自己总结速查或者其他使用
Gallery 相册图库
相册组
123456<div class="gallery-group-main">{% galleryGroup 'somePic' '这是 somePic 相册,什么都存' '/gallery/SomePic' '/gallery/images/cover.png' %}{% galleryGroup 'draw' '这是 draw 相册,主要存我的画' '/gallery/draw' '/gallery/images/1.jpg' %}{% galleryGroup 'cover' '这是 cover 相册,主要存文章封面' '/gallery/cover' ...
为typora更换更新版本的mermaid避免图表无法加载
Typora 是一款广受欢迎的 Markdown 编辑器,它集成了 Mermaid
库,方便用户绘制各类基础图表,如流程图、甘特图、饼图等。然而,Typora 与
Mermaid 独立维护,这就导致 Typora 中集成的 Mermaid
版本可能并非最新,进而无法支持最新的图表类型和特性。比如在撰写本文时,截至
Mermaid 的最新版本 8.5.1 支持 ER 图,在 Markdown 中输入如下代码:
查看你的 typora 中的 mermaid 版本
12```mermaidinfo
info
1234erDiagram CUSTOMER }|..|{ ORDER : places ORDER ||--|{ LINE-ITEM : contains CUSTOMER : id (PK)
erDiagram CUSTOMER }|..|{ ORDER : places ORDER ||--|{ LINE-ITEM : contains CUSTOMER : id...
君と彼女と彼女の恋全周目攻略指南
游戏重要注意事项
存档备份提示:2 周目终点时会删除存档,需提前备份。
XP
系统存档位置:C:\Documents and Settings (UserName)\Application Data\Nitroplus\ 君と彼女と彼女の恋
Vista、Win7
及以上系统存档位置:C:\Users (UserName)\AppData\Roaming\Nitroplus\ 君と彼女と彼女の恋
3 周目解锁条件:需要游戏包装中附带的 8 位序列号(如
34302111)。
谜题解答要点:3
周目循环路线中的谜题答案需记录美雪对话内容,答案因 PC 环境而异。
1 周目特殊操作:在手机中输入 080 9184 6920
可解锁所有 CG、音乐、场景,但会导致无法继续游戏。
一周目:美雪路线
关键选择分支
flowchart TD A["查看通话记录"] --> B["哔哩哔哩"] B --> C["做朋友"] C -->...
深入探索C#事件机制
什么是事件
在软件开发中,事件是一种用于在对象之间传递信息的机制。当一个对象的状态发生变化时,它可以通过触发事件来通知其他对象。事件机制广泛应用于GUI编程、游戏开发、网络编程等领域。
事件的基本概念和语法
委托与事件的关系
在C#中,事件是基于委托实现的。委托是一种类型安全的函数指针,用于引用具有特定签名的方法。事件通过委托来管理其订阅者,并在事件触发时调用这些订阅者的方法。
事件的声明与使用
声明事件的语法如下:
123456789101112public class Publisher{ public delegate void NotifyEventHandler(object sender, EventArgs e); public event NotifyEventHandler Notify; public void RaiseEvent() { if (Notify != null) { Notify(this,...
Spring Boot part11-错误处理
前言
在项目开发的过程中, 不管是对底层数据库的操作过程,
还是业务层的处理过程, 还是控制层的处理过程,
都不可避免会遇到各种可预知的、 不可预知的异常需要处理。
如果对每个过程都单独作异常处理,
代码耦合度会比较高,开发工作量也会加大而且不好统一,
这也增加了代码的维护成本。
针对这种实际情况,
我们需要将所有类型的异常处理从各处理过程中解耦出来,
这样既保证了相关处理过程的功能单一,
也实现了异常信息的统一处理和维护。
同时, 我们也不希望直接把异常抛给用户, 应该对异常进行处理,
对错误信息进行封装, 然后返回一个友好的信息给用户。
自定义异常类相关知识回顾
img
异常的分类
Throwable 类是 Java 异常类型的顶层父类,一个对象只有是
Throwable类的实例,才是一个异常对象,才能被异常处理机制识别。
按照错误严重性,从 Throwale 类中衍生出 Error 和 Exception...
Spring Boot part10-Thymeleaf模板引擎
Thymeleaf引擎
Thymeleaf 简介
什么是
Thymeleaf:Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎
由于 Spring Boot 使用了嵌入式 Servlet 容器,所以 JSP
默认是不能使用的
如果依旧需要服务端进行页面渲染,优先考虑使用模板引擎
image-20250607192416710
模板引擎页面默认放在 src/main/resources/templates
SpringBoot 包含以下模板引擎的自动配置
FreeMarker
Groovy
Thymeleaf Thymeleaf官⽹:https://www.thymeleaf.org/
Mustache
Thymeleaf 是一个现代化的服务器端 Java 模板引擎,专为 Web
和独立环境而设计。与传统模板引擎相比,它具有以下核心优势:
开箱即用的 HTML...