spring配置和注解开发原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、Spring是一个开源、轻量级框架(轻量级是指依赖的东西少)

2、Spring核心控制反转(IoC)和面向切面(AOP)。

——AOP:面向切面编程,扩展功能时不用修改源代码

——IOC:创建对象不再是自己new出来,而是交给spring容器管理

3、Spring希望为企业应用提供一站式(one-stopshop)的解决方案。

一站式:从web层到访问数据库层都有相应解决方案。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

对象的创建交给spring管理(基于配置的方式实现、基于注解的方式实现)

IOC底层原理:Xml配置、dom4j解析xml、工厂设计模式、反射

工厂模式:将对象的创建交给工厂,使用时调用工厂方法来获取。A需要B时,不是直接创建B,而是通过C的方法来获取,C的方法用来创建B。

注解方式原理:

Spring整合web框架原理

1、把加载配置文件和创建对象的过程,在服务器启动的时候完成。

2、用监听器实现

Spring注解:

————注解是代码里面的特殊标签,使用注解可以完成一定功能;

注解写法@注解名(属性名称=属性值);注解可以用在类上、方法上、属性上。

注解使用:

1、在对应类上加上注解,标明该类的创建交给spring来管理。

2、开启注解扫描功能,要指明扫描哪些包。

3、如果要为属性注入,则在属性上使用@autowired注解

AOP概念:

面向切面编程,扩展功能而不用修改源代码,采用横向抽取机制,取代了传统的纵向继承。

传统的纵向继承,耦合度太高

AOP底层使用动态代理实现:a. 如果是有接口的情况,使用动态代理创建接口实现类代理对象,b.如果没有接口,使用动态代理创建类的子类的代理对象。

AOP操作术语:

连接点(Joinpoint):类里面哪些方法可以被增强(扩展功能),这些方法就称为连接点。切入点(Pointcut):在类里面有很多方法可以被增强,但是实际开发只需要增强几个方法,那么实际被增强的方法称为切入点。

通知/增强(Advice):实际扩展的功能代码,比如在插入数据(对应insert()方法)时增加写日志操作(对应wirtelog()方法),这个写日志操作就被称为增强。

前置通知:在insert方法执行前执行

后置通知:在insert方法执行之后执行

异常通知:在insert方法执行出现异常时执行

最终通知:在insert方法的后置通知执行结束后执行

环绕通知:在insert方法执行前和执行后执行

切面(Aspect):把需要增强的方法应用到具体的方法上的过程,称为切面。

在spring里面进行AOP操作使用的是aspectj来实现的,aspectj并不是spring的一部分,spring2.0后增加了对aspectj的支持。

使用aspectj实现AOP有两种方式:基于aspectj的xml配置,基于aspectj的注解方式。

AOP操作准备:

1、除了导入基本jar包外,还需要导入aop相关jar包(maven依赖)

2、创建spring核心配置文件,导入aop约束。

3、使用execution函数,配置切入点

切入点:实际需要增强的方法。

表达式写法:execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)例:(1)execution(* 增强方法全路径(包名.类名.方法名(..))))→对类中指定方法增强

(2)execution(* 包名.类名.*(..)) →对类中所有方法增强

(3)execution(* *.*(..)) →对所有类中所有方法增强

4、在spring核心配置文件中配置切入点所对应的类和增强类

5、配置aop操作 配置切入点;配置切面(把增强用到对应切入点上)

6、然后调用切入点对应的方法,即可实现增强方法发调用。

环绕通知:

注解方式实现AOP

1、创建对象,用注解方式标注对应类即可。

2、开启aop操作(配置,或者用注解)

3、在增强的类上使用注解

→在对应类上加@Aspect

→在增强方法上使用注解完成增强配置

4、调用被增强方法即可实现。

相关文档
最新文档