Spring框架

         首先Spring框架是现在Java开发中比用的框架,他有两大特性,第一个ioc控制反转,所谓的控制反转,其实ioc是一个spring内部的容器,当我们把自己对象注入到ioc容器里,交给ioc控制,我们不关心对象的创建,我们只用把自己对象注入的容器中,在用的时候直接向ioc容易要就行了,这也就是ioc控制反转,他最大的好处就是解决项目中一定的的耦合问题。当然ioc也包含spring中的bean的创建流程以及bean的生命周期,这个后面在细说。

         还有一大特性就是aop,面向切面编程,可以避免侵入代码,可以通过设置切点,和切面,使切点指定位置执行切面所写的业务逻辑,比如权限,日志这些都可以通过aop来实现。aop其实是spring框架基于动态代理来实现的,在spring中动态代理有两种实现方式,基于jdk自带的Proxy动态代理和cglib的动态代理,这两种分别是针对不同情况下所执行的不同动态代理,简单理解,基于Proxy的动态代理通过实现InvocationHandler接口,重写invoke,在代码运行时为目标对象方法的调用增加额外逻辑实现动态代理。而基于cglib的动态代理是基于类的动态代理,是通过生成目标对象的子类作为目标对象,覆盖原对象的方法,增加自己的逻辑,从而实现动态代理。还有基于接口的动态代理对于实现了InvocationHandler接口有效,而基于类的动态代理作用于出final修饰以为的所有类。

        在spring中还有很多设计模式,包括单例模式,spring中的bean默认是单例,可以设置scope注解的value值为prototype,变成多例。工厂模式的变种,ioc容器是基于工厂模式加上应用的上下文而实现的。代理模式,例如AOP。还有观察者模式,比如spring提供的ApplicationEvent接口,通过ApplicationListener去监听实现ApplicationEvent接口的类,重写其onApplicationEvent方法做自己的事件触发方法。

       欢迎指正补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值