spring:《spring实战》读后感一

1.spring所做的一切都是为了简化java开发。

2.为了降低java开发的复杂性,spring采取了以下4种关键策略: 

   1).基于POJO的轻量级和最小侵入性编程.

   2).通过依赖注入和面向接口实现松耦合.

   3).基于切面和惯例进行声明式编程.

   4).通过切面和模板减少样板式代码.

3. Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载装置。

4.  ClassPathXmlApplicationContext作为应用上下文,很适合加载位于应用程序类路径下的一个或多个xml配置文件。

5.  DI能够让相互协作的软件组件保持松散耦合,而面向切面编程(aspect-oriented programming, AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。

6.  把切面想象为覆盖在很多组件之上的一个外壳。应用是由那些实现各自业务功能的模块组成的。 借助AOP, 可以使用各种功能层去包裹核心业务层。 这些层以声明的方式灵活地应用到系统中,你的核心应用甚至根本不知道它们的存在。这是一个非常
强大的理念, 可以将安全、 事务和日志关注点与核心业务逻辑相分离。
 

 7. 容器是一个框架的核心。

 8. Spring容器中的bean的生命周期显得相对复杂。 bean装载到Spring应用上下文中的一个典型的生命周期过程如下图所示:

   

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

9. spring模块, spring框架的发布版本包括了20个不同的模块.

 这些20个模块依据其所属的功能可以划分为6类不同的功能,如下图

 

发布了557 篇原创文章 · 获赞 40 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/m0_37564426/article/details/103784937
今日推荐