春天基础知识:
一:什么是春天
如图1所示,弹簧是一个开源的轻量级框架
2,弹簧核心的主要两部分:
AOP:面向切面编程,扩展功能不是修改源代码实现
IOC:控制反转,比如有一个类,在类里面有一个方法,调用类里的方法,创建类的对象,使用对象调用方法,创建类对象的过程需要new出来对象把对象的创建不是通过new方式创建,而是交给弹簧配置创建类对象
3,一站式开源框架
春天在JavaEE的三层结构中,每一层都提供不同的技术
网络层:用SpringMVC
服务层:春季的国际奥委会
DAO层:春天的JdbcTemplate的
springIOC操作
1,把对象的创建交给弹簧进行管理
2,国际奥委会操作的两种形式
①配置文件方式
②注解方式
IOC底层原理:
①xml配置文件
②dom4j解决XML
③工厂模式
④反射
SpringAOP
AOP:面向切面编程,扩展功能不修改源代码实现
AOP采取横向抽取机制,取代了传统纵向传承体系重复性代码。
AOP的横向机制:
底层使用动态代理的方式实现
动态代理分为两种①使用jdk动态代理,针对有接口的情况
②使用CGLIB进行动态代理,针对没有接口的情况
AOP术语
连接点(连接点):类中哪些方法可以被增强,这些方法称为连接点
切入点(Pointcut):在类里面可以有很多的方法被增强,比如实际操作中,值增强了类中的添加方法和更新方法,那么实际被增强的方法称为切入点。
通知/增强(建议):实际增强的逻辑,称为增强,比如扩展日志功能,那么这个日志功能称为增强。
前置通知:在方法之前来执行
后置通知:在方法之后来执行
异常通知:方法中出现异常
最终通知:在后置之后来执行
环绕通知:在方法之前和之后执行
切面(方式):把增强应用到具体的方法上面,过程称为切面。
把增强用到切入点的过程称为切面
春天的AOP操作
如图1所示,在sjpring'中进行AOP操作,使用AspectJ的实现
(1)的AspectJ不是弹簧的一部分,和弹簧一起使用进行AOP操作
(2)Spring2.0以后新增了对AspectJ的支持
2,使用的AspectJ实现AOP有两种方式
(1)基于的AspectJ的XML配置
(2)基于的AspectJ的注解方式
总结:
春天的核心就在于它的AOP和IOC