Spring 的IOC 的注解开发(*****)
Spring的IOC的注解开发的入门
创建web项目,引入jar包
- 在Spring4的版本中,除了引入基本的开发包以外,还需要引入aop的包。

引入Spring的配置文件
- 在src下创建一个ApplicationContext.xml
- 引入约束:使用注解开发需要引入context约束。
- 约束:spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html

创建接口和实现类
开启Spring的组件扫描

在类上添加注解

编写测试类

注解方式设置属性的值
- 注解方式:使用注解方式,可以没有set方法的。
- 属性如果有set方法,需要将属性注入的注解添加到set方法
- 属性如果没有set方法,需要将属性注入的注解添加到属性上。

Spring IOC注解的详解
@Component:组件
- 修饰一个类,将这个类交给Spring管理。
- 这个注解有三个衍生注解(功能类似)
- @Controller:web层
- @Service:service类
- @Repository:dao层
属性注入的注解
- 普通属性
- @Value:设置普通属性的值
- 对象类型属性
- @Autowired:设置对象类型的属性的值,但是按照类型完成属性注入。
- 我们习惯是按名称完成属性注入:必须让@Autowired注解和@Qualifiter一起使用完成按照名称属性注入。
- @Resource:完成对象类型的属性的注入,按照名称完成属性的注入。
- @Autowired:设置对象类型的属性的值,但是按照类型完成属性注入。
Bean 的其他的注解
- 生命周期相关的注解(了解)
- @PostConstruct:初始化方法
- @PreDestroy:销毁方法
- Bean的作用范围的注解
- @Scope:作用范围
- singleton:默认单例
- prototype:多例
- request
- session
- globalsession
- @Scope:作用范围
IOC 的 XML 和注解开发的比较
XML 和注解的比较
- 适用场景
- XML:可以适用任何场景
- 结构清晰,维护方便。
- 注解:有些地方用不了,这个类不是自己提供的。纯注解(SSH)
- 开发方便。
- XML:可以适用任何场景
XML 和注解整合开发
- XML 管理Bean,注解完成属性注入。
Spring 的 AOP 的XML开发(*****)
AOP 的概述

AOP:面向切面编程。AOP是OOP的扩展和延伸,解决OOP开发遇到的问题。

Spring 底层的 AOP 实现原理
- 动态代理
- JDK动态代理:只能对实现了接口的类产生代理。
- Cglib动态代理(类似于Javassist第三方代理技术):对没有实现接口的类产生代理对象,生成子类对象。
Spring 的 AOP 底层实现(了解)
JDK 动态代理


Cglib 动态代理
- Cglib:第三方开源代码生成类库,动态添加累的属性和方法。



Spring 的 AOP 的开发(AspectJ 的 XML 的方式)
Spring AOP 的简介
- AOP 思想最早是由AOP联盟组织提出的,Spring使用这种思想最好的框架。
- Spring 的AOP有自己实现的方式(非常繁琐)。AspectJ是一个AOP的框架,Spring引入AspectJ作为自身AOP的开发。
- Spring 有两套AOP开发方式
- Spring 传统方式(弃用)。
- Spring 基于AspectJ的AOP的开发(使用)。
AOP 开发中相关术语

Spring 的 AOP 的入门(AspectJ 的 XML 的方式)
创建 web 项目,引入 jar 包
- 引入6个基本开发包

- 引入 aop 开发的相关 jar 包

引入 Spring 的配置文件
- 引入 AOP 的约束

编写目标类并完成配置

编写测试类
- Spring 整合 Junit 单元测试

编写一个切面类
- 编写切面类

- 将切面类交给 Spring

通过 AOP 的配置实现

Spring 中通知类型
前置通知:在目标方法执行之前进行操作
- 前置通知:获得切入点信息

后置通知:在目标方法执行之后进行操作
- 后置通知:获得切入点信息、方法的返回值

环绕通知:在目标方法执行之前和之后进行操作
- 环绕通知可以组织目标方法的执行

异常抛出通知:在程序出现异常的到时候,进行的操作

最终通知:无论代码是否有异常,总会执行。

引介通知(不用会)
Spring 切入点表达式写法
切入点表达式语法
- 基于 execution 的函数完成的
- 语法
- [访问修饰符] 方法返回值 包名.类名.方法名(参数)
- public void com.itheima.spring.CustomerDao.save(…)
-
* *.*.*.*Dao.*.save(..) -
* com.itheima.spring.CustomerDao+.save(..) -
* com.itheima.spring..*.*(..)

本文深入解析Spring框架中IOC和AOP的注解开发方式,包括组件扫描、属性注入、生命周期管理及AOP通知类型等关键概念。通过实例演示如何使用@Component、@Autowired、@Resource等注解简化开发流程。
651

被折叠的 条评论
为什么被折叠?



