Spring学习笔记

Spring

什么是Spring

  • Spring是一个轻量级的框架,它可以管理对象的配置和声明周期,是一个容器。
  • Spring有IOC控制反转功能。
  • Spring有AOP面向切面功能。

AOP的概念

AOP是面向切面功能,通过代理模式来实现的。

AOP把一些需要在业务中反复重复的代码(事务,日志等)抽离出来,然后封装进切面中。需要使用切面的时候,可以不改动任何业务逻辑的源码。

AOP的代理使用时机

  • 在类没有实现接口时,使用CGlib动态代理。
  • 类实现接口时,使用JDK动态代理。

AOP的相关注解

  • @Aspect 表示这个类是一个切面类
  • @Before 前置通知,表示在某个连接点之前执行
  • @After 后置通知,表示在某个连接点退出之后的通知
  • @AfterReturning 返回后通知,某连接点正常执行后的通知,返回值用returning属性接收。

IOC的概念

IOC控制反转和依赖注入

IOC是控制反转,简单来说就是原来对象之间的依赖是要手动去创建对象,而IOC则是把创建对象和依赖注入交给容器去做,在Spring中管理对象就是通过IOC去做的。

  • 举例:如果Car类的属性需要一个Engine的对象,不使用IOC的时候需要手动去new这个Engine对象,使用了IOC的话,只需要在Car的属性定义一个Engine类型的成员变量,容器会自动创建一个Engine对象并注入。

Spring的Bean的生命周期
  1. 解析类获得BeanDefinion
  2. 实例化对象
  3. 对实例化对象根据@autowired注解进行依赖注入
  4. 如果实现了BeanNameAware接口,则调用SetBeanAware方法。
  5. 如果是想了BeanFactoryAware接口,则调用SetBeanFactory方法。
  6. Bean就绪,可以使用Bean了
  7. Spring容器关闭时调用DisposableBean中的destory方法。
Bean的作用域
  • singleton:默认,每个容器中只有一个Bean的实例,单例的bean由BeanFactory去维护,声明周期和IOC容器是一致的。
  • prototype:原型模式,为每一个Bean请求提供一个实例
  • Request:在Http请求时创建单例对象
  • Session:在每个Session中创建Bean的实例
  • goble-session:全局作用域,一般用于portlet容器,当时现在一般不用portlet了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值