| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> IoC 及 AOP 使用扩展 -> 正文阅读 |
|
[Java知识库]IoC 及 AOP 使用扩展 |
目录 1.1.IOC构造注入 (constructor-arg): 异常通知: 在出现异常时,Spring AOP会自动捕获异常,并使用代理对象处理。 最终通知 Spring AOP的最终通知是通过finally实现的,无论发生任何情况,都会执行。 环绕通知???? 环绕通知功能非常强大,包含了四种全部通知类型,主要是通过暴露的原生方法调用所执行的目标方法,因此可以获取到原生方法的所有状态加以处理 3.3 使用Autowired或者是Resources来完成DI依赖注入 4.2 在配置文件中,添加开启自动代理的功能,不然Annotation不会运行 1.IOC的注入方式扩展:??????? 以往我们完成注入的方式是通过基本参数类型进行注入,那么引用数据类型呢?答案当然是可以的,接下来,来学习其他注入的几种方式: 1.1.IOC构造注入 (constructor-arg):????????使用内部bean ????????使用ref引用形式 ??????? index(按位置) type (按类型) name(按名称)
?? ????????日期格式注入
1.2 设值注入(set) 与构造注入的区别?1.3 集合、数组、Map、Properties类型注入2. AOP扩展使用
异常通知: 在出现异常时,Spring AOP会自动捕获异常,并使用代理对象处理。最终通知 Spring AOP的最终通知是通过finally实现的,无论发生任何情况,都会执行。环绕通知???? 环绕通知功能非常强大,包含了四种全部通知类型,主要是通过暴露的原生方法调用所执行的目标方法,因此可以获取到原生方法的所有状态加以处理3. 使用注解实现IoC及DI依赖注入3.1 在配置文件中打开包扫描机制3.2 注解实现IoC (直接使用注解实现加载到容器当中)
在使用以上注解时,能够给每一个组件进行重命名。默认情况下,以首字母小写的形式,存储到
IoC
容器之中。
3.3 使用Autowired或者是Resources来完成DI依赖注入???????? 1.@Autowird : 按照类型实现自动装配,也就意味着在容器中必须拥有对应类型。如果出现了多个要 注入的类型,此时,IoC容器就会发现不知道该如何注入,可以通过@Qualifier来完成以名称为标识进行注入。 ????????????????????????????????????????????? 添加依赖:
假如在同一个项目中,有两个或以上的类实现了
UserService
接口,按以上写法就会产生异常。会
告诉使用者在注入时根据类型找到了两个或两个以上的实现类,无法实现自动注入。
解决方案
是通过在注入时,添加
@Qulifier
,该注解是实现通过名称辅助
@Autowired
实现自动注
入。
2.????????Resource:按照
名称
进行装配,若通过名称没有找到对应名字的对象,就会应用
Type
方式继续查
找,如果都没有找到就会报错。在
Spring
中,加入了注解后,会将对应的类名,以首字母小写的形
式,存储到
IoC
容器之中,作为
Resource
会自动以
ByName
的方式进行匹配。
如果也出现了两个实现类的情况,对于
Resource
的解决方案
默认情况下Resource会采用名称的匹配方式,要求变量名与被注解修饰的组件名称要一致! 如果不一致,此时Resource就不再通过名称来注入了,而是采用类型方式进行注入! 4.以Annotation注解形式实现AOP4.1自定义一个全注解的AOP的类
4.2 在配置文件中,添加开启自动代理的功能,不然Annotation不会运行 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 4:37:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |