Spring组件与AOP基础操作:@Autowired @Resource @Inject解析
需积分: 0 60 浏览量
更新于2024-08-04
收藏 4.71MB DOCX 举报
"本资源主要讲解了Spring框架中的组件管理和AOP(面向切面编程)的基本使用操作,包括注解的对比、切面方法的表达式整理以及AOP执行顺序等核心概念。"
在Spring框架中,组件管理是通过依赖注入(DI)来实现的,而注解是DI的一种常见方式。`@Autowired`、`@Resource`和`@Inject`都是用来进行自动装配的,但它们之间存在细微差别。`@Autowired`是Spring框架自身的注解,它基于类型匹配,可以对字段、方法和构造函数进行注解,同时支持通过`@Qualifier`指定特定的bean。`@Resource`源自JSR-250规范,也基于类型匹配,但默认按名称进行装配。`@Inject`来自JSR-330,同样基于类型,但更简洁,不包含`require=false`属性,意味着必须找到一个匹配的bean。
`@Qualifier`和`@Primary`是用于控制依赖注入时的bean选择。`@Qualifier`可以明确指定需要哪个bean,而`@Primary`则是在有多个候选bean时,标记其中一个为首选。
`@Around`、`@Before`和`@After`是Spring AOP中的通知类型。`@Around`通知允许在方法调用前后执行自定义逻辑,它是最强大的通知类型,因为它可以控制是否继续执行原方法。`@Before`和`@After`分别表示在目标方法执行前和执行后执行的通知。根据AOP的执行顺序,`@Around`会先于`@Before`和`@After`执行。
在实际操作中,我们可以通过查看`AnnotationAwareAspectJAutoProxyCreator`的源码来理解Spring如何处理AOP代理的创建。这个类是Spring在启动时自动配置的,负责识别并处理带有切面注解的bean。`refresh()`方法是Spring容器的核心方法,它负责初始化所有bean。对于AOP相关的bean和业务bean,初始化的时机是不同的,AOP相关的bean通常在业务bean之前初始化,以确保切面可以正确地拦截和增强目标方法。
理解这些基本概念和机制对于深入学习和使用Spring框架至关重要,无论是进行组件配置还是实现复杂的企业级应用,都能帮助开发者更好地掌握Spring的工作原理。
2016-12-14 上传
658 浏览量
2022-09-23 上传
2022-09-23 上传
2022-09-14 上传
2022-09-24 上传
2022-08-08 上传
2022-09-24 上传
2019-03-28 上传
代码深渊漫步者
- 粉丝: 21
- 资源: 320
最新资源
- 20210218_z中文latex-lshort.zip
- dynamic-programming:动态编程问题的解决方案
- cryptoverse-wars-backend
- NHSRdatasets:这是CRAN R软件包系统信息库的只读镜像。 NHSRdatasets —用于教育和培训的与NHS和医疗保健相关的数据。 主页
- LUA5.3支持库1.6版(lua4.fne)-易语言
- three-squirrels-web
- Q00CPU与HITECH触摸屏的通讯的示例。.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例
- petGame
- todos-app:使用Laravel框架php解决我的100daysofcode挑战的TODO应用程序
- AI Partition(银灿U盘分区工具)V2.0.0.3
- Stranger-Things:使用JS,jQuery和封闭源社区数据库构建了“消费者对消费者”(C2C)在线交易平台
- 屏蔽win键-易语言
- zenn
- flash_unde_noaxu
- pokedex-react-app-ts
- WiseBot:怀斯(Wise)打造的神奇机器人