当前位置: 首页 > news >正文

Spring IOC与DI核心注解速查表

一、IOC创建对象的4个核心注解

  1. @Controller- 用于标注控制器层组件(Controller层)
  2. @Service- 用于标注业务逻辑层组件(Service层)
  3. @Repository- 用于标注数据访问层组件(DAO层)
  4. @Component- 用于标注非三层架构的其他地方(通用组件)

原理:这些注解本质都是@Component的衍生注解,用于声明Bean并交由Spring容器管理


二、@Scope注解 - 控制对象作用域

@Scope("singleton")// 单例模式(默认)@Scope("prototype")// 多例模式

作用:控制Bean是单例还是多例,解决对象线程安全问题


三、XML配置 - 注解扫描生效

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描指定包下的注解 --><context:component-scanbase-package="com.luo"/></beans>

关键点component-scan标签开启注解驱动,本质是BeanFactoryPostProcessor在操作


四、DI依赖注入注解

注解注入类型默认规则使用场景
@Value基本类型直接赋值字符串、数字等基本类型注入
@Autowired引用类型按类型注入(byType)同一类型Bean唯一时使用
@Resource引用类型按名字注入(byName)需要明确指定Bean名称时
@Qualifier配合@Autowired按名字注入同一接口多个实现类时精确定位

优势:相比XML配置,注解方式无需编写set方法,开发更高效


五、完整示例代码

@Service("userService")// 指定id为userService,默认是首字母小写的类名@Scope("singleton")publicclassUserServiceImplimplementsUserService{// 基本类型注入@Value("19")privateintage;// 引用类型自动注入(默认按类型)@AutowiredprivateUserDaouserDao;// 如果存在多个UserDao实现类,可配合@Qualifier使用// @Autowired// @Qualifier("userDaoImpl")// private UserDao userDao;@OverridepublicvoidfindUserById(){userDao.findUserById();System.out.println("UserService!!!!");}}

六、快速记忆口诀

IOC四兄弟:Controller、Service、Repository、Component
Scope控单例:singleton默认,prototype多例
DI四剑客:Value基本型,Autowired类型,Resource名字,Qualifier配合
XML扫注解:component-scan包路径
修改BeanID:@Component(“自定义名称”)


七、原理补充(理解性记忆)

所有注解生效的前提是Spring容器启动时通过<context:component-scan>扫描包路径,将带有注解的类注册为BeanDefinition,再由BeanFactory实例化并管理其生命周期

http://www.cnnetsun.cn/news/127839.html

相关文章:

  • 42、数据绑定中的错误处理与ASP.NET数据绑定实践
  • 46、WinFx数据绑定入门指南
  • Kotaemon危机公关声明撰写:负面舆情应对
  • Kotaemon如何生成参考文献?学术写作辅助新玩法
  • 12、深入解析词法分析与语法分析工具的核心功能
  • 13、Bison 解析器的高级特性与使用技巧
  • Kotaemon中的元数据过滤功能如何精准定位内容?
  • 部署稳定、效果可追踪——Kotaemon RAG框架核心优势
  • Kotaemon签证政策实时查询系统
  • 请编写一个 Shell 脚本监控系统的 CPU 使用率(中等)
  • SpringBoot+Vue html+css在线英语阅读分级平台管理平台源码【适合毕设/课设/学习】Java+MySQL
  • Kotaemon在制造业的应用探索:设备故障智能诊断
  • Kotaemon支持OAuth2.0认证吗?第三方登录集成
  • 7、macOS Stacks:高效管理与便捷操作指南
  • 11、Mac 系统窗口管理利器:Magnet 与 BetterSnapTool 全解析
  • 12、macOS 键盘自定义与截图技巧全攻略
  • Kotaemon包装文案写作:吸引消费者眼球
  • 虚拟数字人正重塑多个行业的生产力模式,今天跟大家聊聊数字人都有哪些应用场景,怎么样帮助企业赋能?
  • 2、老年友好型Windows 7电脑使用指南
  • Kotaemon支持一键部署:Docker镜像现已全面开放
  • 14、网络软件下载与电子邮件使用指南
  • 17、中老年Windows 7电脑使用技巧与Word 2007高级应用
  • Agent 命题的“平庸化”终结:重塑智能体落地的“第一性原理”
  • Python,一键给客户部署llama.cpp +qwen3
  • 如何利用chatgpt反向插入参考文献
  • Kotaemon商务邮件撰写:正式语气智能生成
  • Kotaemon支持多语言吗?国际化适配进展通报
  • gitignore文件如何添加忽略文件或文件夹
  • Kotaemon社区版 vs 商业版功能差异全对比
  • 前端开发需要学习什么?掌握哪些技术?收藏这篇就够了