0.核心特性
支持依赖注入(DI)和面向切面编程(AOP)
1.耦合具有两面性
a.紧密耦合的代码难以测试,难以复用,难以理解
b.完全没有耦合的代码什么也做不了,不同的类必须以适当的方式进行交互
2.依赖注入
对象的依赖关系将由负责协调系统中各个对象的第三方组件在创建对象时设定,依赖关系将被自动注入到需要
他们的对象中去。
3.装配
创建应用组件之间协作的行为通常称为装配,采用xml配置是最常用的装配方式
4.Spring可以通过应用上下文Application Context装载bean的定义并将它们组装起来
5.面向切面编程往往被认为是促使应用程序分离关注点的一种技术,安全、日志等系统服务长被融入到有自身
核心业务逻辑的组件中去,这些系统服务常常被称为横切关注点,因为它们跨越了系统的多个组件
6.AOP使服务模块化,并以声明的形式应用至它们需要影响的组件中,结果为这些组件具有高内聚性,以及更加
关注自身业务,完全不必了解可能涉及的系统复杂性,总之,AOP确保POJO保持简单。
7.将Mintrel bean声明为一个切面,前置通知,后置通知
8.使用模板消除样板式代码
9.容器为Spring框架的核心,Spring使用依赖注入管理构成应用的组件,它会为创建相互协作的组件间的关联。
10.Spring自带几种容器:Bean工厂(bean factories)是最简单的容器,提供了基本的DI支持,应用上下文提供了基于
BeanFactory之上构建,并提供面向应用的服务,如从属性文件解析文本信息的能力;应用上下文(Application
Context)基于BeanFactory之上构建,提供面向应用的服务。Bean对大多数应用太低级了,一般使用应用上下文。
11.Spring自带了几种类型的应用上下文,如ClassPathXMLApplicationContext,FileSystemXMLApplicationContext,
XmlWebApplicationContext
12.通过现有的应用上下文引用,你可调度应用上下文的getBean()方法从Spring容器中获取bean
13.Spring bean的生命周期