Spring-AOP
Posted 拿红罗卜钓鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-AOP相关的知识,希望对你有一定的参考价值。
spring
的两大核心:
IOC
:控制反转
AOP
:面向切面编程
Aspect Oriented Programming
Java
的基本思想:
OOP Object Oriented Programming
面向对象编程
AOP -->
是针对
OOP
的补充;
别人的代码最好不要动;
在别人代码的基础上,拓展功能而不改变原有代码; 添加新的代码;使用其他对象来完成新增的功能,
就是
aop
的思想
底层应用: 动态代理;
使用设计模式为:代理模式;
代理的几种方式:
1.
静态代理
缺点:每次代理只能代理一个类型的对象,如果要代理其他类型的需要创建新的代理类;
代理类和被代理类,必须实现同一个接口,才能知道有哪些方法可以调用;
2.
动态代理 : 解决代理类和被代理类之间的共同接口问题;
2.1
、
jdk
接口动态代理 只有代理类实现了接口,才能使用此种方式;
代理类可以代理多种类型的类,但是这几个类必须实现同一个接口;
2.2
、
cglib
子父类动态代理 代理类必须要有父类; 基于
asm
字节码技术
使用第三方的
jar
包
cglib.jar
aop
的应用
在
spring-aop
种, 默认使用的是
jdk
动态代理, 只有在类没有实现接口的时候,才会使用
cglib
动态
代理;
1.
使用配置文件
xml
进行
aop
的配置
过程比较繁琐;
2.
使用注解的方式进行
aop
的配置
工作中最常用的 注解
aop
的配置
spring
种的注解
注解:
@
开头
+
注解名称
@Override @Test
注解的使用方式: 放在类、属性、方法之上;
spring
中的注解: 为了代替
xml
中配置内容 ,减少配置文件中的内容
1. ioc
相关注解
5
基础包
(bean context core expression jcl) + aop.jar
1.1
、
bean
的声明
四个注解
@Component @Controller @Service @Repository
@Component("bean
名称
")
如果没有指定
bean
的名称 默认对象名称:是类名首
字母小写
用法、作用一摸一样
java web
项目 三层架构
web
层 展示层表示层 使用
@Controller
进行定义生成对象
service
层 业务逻辑层 使用
@Service
进行注解
dao
层 数据持久层 使用
@Repository
进行注解
除了三层之外的其他类交由
spring
管理时,使用
@Component
进行注解
1.2
、属性的注入
@Autowired
使用位置,在属性
(
大部分
)
、
setter
方法之上
@Qualifier("bean
名称
")
当
Autowired
不能指定为具体某一个对象时,需要使用此
注解指定对象的名称
@Resource
以上是关于Spring-AOP的主要内容,如果未能解决你的问题,请参考以下文章