Spring注解与AOP实战总结
需积分: 49 165 浏览量
更新于2024-07-18
收藏 1.19MB DOC 举报
"这篇文档是关于Spring框架注解开发的总结,涵盖了Spring的IOC注解和基于AspectJ的XML的AOP开发。"
在Spring框架中,注解开发极大地简化了配置过程,使得代码更加简洁。以下是关于Spring注解开发的详细说明:
### Spring的IOC注解开发
#### 注解入门
1. **引入依赖**:为了使用Spring的注解,需要引入Spring的AOP和Context相关的包。
2. **启用组件扫描**:通过`<context:component-scan/>`标签,Spring会自动发现并管理带有特定注解的类。
#### 定义Bean
- **@Component**:这是最基本的注解,用于标记一个类作为Spring管理的Bean。
- **@Controller**:用于标记Web层的控制器类。
- **@Service**:标记Service层的业务逻辑类。
- **@Repository**:用于DAO层,标记数据访问组件。
#### 属性注入
- **@Value**:可以用来注入基本类型的值或从配置文件中读取的值。
- **@Resource**:用于按照名称注入Bean,主要用于注入其他Bean。
#### XML与注解的比较
- **XML方式**:虽然配置更为详尽,但适用于更复杂的情况,结构清晰。
- **注解方式**:更简便,适合于自定义类的快速开发,减少XML配置。
### Spring的AOP基于AspectJ的XML开发
#### AOP概念
- **面向切面编程(AOP)**:作为面向对象编程(OOP)的补充,用于解决OOP中的横切关注点,如日志、事务管理等。
#### Spring AOP实现
- **动态代理**:Spring支持JDK动态代理和Cglib动态代理,根据目标类是否实现接口来选择代理方式。
#### AOP术语
- **连接点(Join Point)**:可以添加增强的地方。
- **切入点(Pointcut)**:实际被拦截的连接点。
- **通知(Advice)**:增强方法,如前置、后置等。
- **引介(Introduction)**:向目标类添加新的方法或属性。
- **目标(Target)**:被增强的对象。
- **织入(Weaving)**:将增强应用到目标对象的过程。
- **代理(Proxy)**:织入增强后的对象,是客户端交互的对象。
- **切面(Aspect)**:切入点和通知的组合。
#### AOP入门开发
- **配置**:包括引入jar包、编写目标类、切面类以及AOP配置。
- **通知类型**:包括前置、后置、环绕、异常抛出和最终通知。
- **切入点表达式**:定义何时执行通知,如`execution(表达式)`。
### Spring基于AspectJ的注解AOP开发
- **步骤**:创建项目、引入依赖、编写目标类和切面类,然后开启注解AOP并在切面类上使用注解。
#### 通知类型注解
- **@Before**:前置通知,在方法执行前执行。
- **@After**:后置通知,在方法执行后执行。
- **@Around**:环绕通知,可以完全控制方法的执行过程。
- **@AfterThrowing**:异常抛出通知,当方法抛出异常时执行。
- **@AfterReturning**:最终通知,无论方法是否正常结束都会执行。
通过这些注解,开发者可以方便地实现切面编程,实现代码的解耦和复用。在实际项目中,结合XML配置和注解开发可以充分利用两者的优点,达到最佳的灵活性和可维护性。
2018-08-12 上传
2011-11-16 上传
2023-08-29 上传
2023-05-31 上传
2023-09-09 上传
2023-07-15 上传
2023-09-07 上传
2023-07-14 上传
BinBin_Jun
- 粉丝: 116
- 资源: 5
最新资源
- JDK 17 Linux版本压缩包解压与安装指南
- C++/Qt飞行模拟器教员控制台系统源码发布
- TensorFlow深度学习实践:CNN在MNIST数据集上的应用
- 鸿蒙驱动HCIA资料整理-培训教材与开发者指南
- 凯撒Java版SaaS OA协同办公软件v2.0特性解析
- AutoCAD二次开发中文指南下载 - C#编程深入解析
- C语言冒泡排序算法实现详解
- Pointofix截屏:轻松实现高效截图体验
- Matlab实现SVM数据分类与预测教程
- 基于JSP+SQL的网站流量统计管理系统设计与实现
- C语言实现删除字符中重复项的方法与技巧
- e-sqlcipher.dll动态链接库的作用与应用
- 浙江工业大学自考网站开发与继续教育官网模板设计
- STM32 103C8T6 OLED 显示程序实现指南
- 高效压缩技术:删除重复字符压缩包
- JSP+SQL智能交通管理系统:违章处理与交通效率提升