Spring实战 读书笔记 1.Spring之旅

1.引言

2.关于本书

3.依赖注入和应用切面

4.容纳你的bean

5.spring各个版本的特性

 

1.引言

如上篇博客所述,打算从Spring作为学习java的切入点,那我们开始吧。

 

2.关于本书

本书分为4个部分:

2.1 第1部分 介绍Spring容器,以及Spring框架的核心 依赖注入和面向切面编程

2.2 第2部分 如何使用Spring来构建web应用程序

2.3 第3部分 关注如何处理和持久化数据

2.4 最后一部分 介绍如何将Spring应用程序与其他系统进行集成

 

3.依赖注入和应用切面

3.1 装配的概念

创建应用组件之间协作的行为通常称为装配(wiring)。

 

3.2 介绍了Spring装配bean的两种方式

3.2.1 基于xml的配置

3.2.2 基于java的配置

 

3.3 如何装配bean的

Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。

Spring应用上下文全权负责对象的创建和组装。

Spring自带多种应用上下文的实现,它们之间的主要区别在于如何装载配置

 

3.4.DI和AOP的好处

DI能够让相互协作的软件组件保持松散耦合

AOP允许你把遍布应用各处的功能分离出来形成可重用的组件,从而使应用具有更高的内聚性并且更加关注自身的业务

详见:

浅谈IOC

也说AOP

 

4.容纳你的bean

4.1 Spring容器

Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期。

Spring容器归为两种类型:

bean工厂(由org.springframework.beans.factory.BeanFactory接口定义),提供基本的DI支持

应用上下文(由org.springframework.context.ApplicationContext接口定义),基于BeanFactory创建,并提供应用框架级别的服务

 

4.2 Spring自带的常用应用上下

  • AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载Spring应用上下文
  • AnnotationConfigWebApplicationContext:从一个或多个基于java的配置类中加载Spring Web应用上下文
  • ClassPathXmlApplicationContext:从类路径下的从一个或多个xml配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
  • FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义
  • XmlWebApplicationContext:从web应用下的一个或多个xml配置文件中加载上下文定义

4.3 bean的生命周期

  1. Spring对bean进行实例化
  2. Spring将值和bean的引用注入到bean对应的属性中
  3. 如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBeanName()方法
  4. 如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入
  5. 如果bean实现了ApplicationContextAware接口,Spring将调用SetApplicationContext()方法,将bean所在的应用上下文的应用传入进来
  6. 如果bean实现了beanPostProcessor接口,Spring将调用它们的postProcessBeforeInitialization()方法
  7. 如果bean实现了InitializingBean接口,Spring将调用它们的afterPropertiesSet()方法,类似的,如果bean使用init-method声明初始化方法,该方法也会被调用
  8. 如果bean实现了BeanPostProcessor接口,Spring将调用它们的PostProcessAfterInitialization()方法
  9. 此时,bean已经准备就绪了,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到应用上下文被销毁
  10. 如果bean实现了DisposableBean接口,Spring将调用它的destroy()接口犯法,同样,如果bean使用了destroymethod声明了销毁方法,该方法也会被调用

5. spring各个版本的特性

这里暂时只记录我接触的一些内容

Spring 3.2中

RestTemplate和@RestMapping可以支持HTTP PATCH方法;

@Autowired,@Value和@Bean注解能够作为元注解,用于创建自定义的注入和bean声明注解;

 

源码地址:https://github.com/jdzhang1221/SpringInAction4

 

posted @ 2019-07-15 00:53  快跑啊兔兔  阅读(347)  评论(0编辑  收藏  举报