Spring 学习

谈谈对spring的理解

spring是java里头应用最广的框架,它的成功源于它的理念和思想,包括我们熟知的IOC和AOP思想,同时它也是是一个轻量级的开源框架。

何为轻量级,即它部署简单,所依赖的东西非常少,资源占用少

对于spring的理解目前除了使用它来开发系统之外,了解多一点的就是其核心理念IOC以及重要功能AOP。

IOC的话就是在程序中手动创建对象的控制权交由spring框架管理,若要使用某个对象,只需要从spring容器中获取需要的对象,我们可以不去关心对象的创建过程。在创建对象的过程中,我了解到有一个叫依赖注入的概念,依赖注入DI即spring在创建对象的过程中,将对象的依赖属性,比如简单值,集合对象等,通过配置设置给该创建的对象。

对于AOP,即所说的面向切面编程,在AOP思想里把系统功能分为核心业务功能和周边功能。所谓核心业务功能即登录,增加删除数据等等都叫核心业务,而周边功能则是日志,事务管理这些,被业务模块共同调用的逻辑,因此周边功能在springAOP里面就被定义成切面,AOP就是将核心业务功能和切面功能分别独立开发,然后把切面功能和核心业务“编织”在一起,用来降低模块的耦合度,减少系统的重复代码(可以举例)

spring动态代理

Spring AOP就是基于动态代理实现的。即如果Spring的某个bean配置了切面,那么Spring创建这个bean的时候实际上是创建的是这个bean的一个代理对象,后续对bean方法的调用实际上也是调用代理类重写的代理方法。

Bean代指的就是那些被IOC容器所管理的对象

实现动态代理的方式有两种,一个是基于接口的JDK动态代理,基于反射机制生成代理对象,要求代理对象至少实现一个接口,若没有实现接口的对象,则会使用CGLib生成一个代理子对象。它是基于继承的动态代理,生成的代理子对象继承了目标对象的方法,并且可以对方法进行增强。

注:反射指在运行状态中,对于任意一个类都能够知道这个类的所有属性和方法,并且对于任意一个对象,都能够调用他的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为反射机制。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值