1 簡化的策略
Spring的目標是致力于全方位的簡化Java開發(fā)肋僧,為了降低Java開發(fā)的復雜性幻件,Spring采取了以下4種關鍵策略:
- 基于POJO的輕量級和最小侵入性編程卸例;
- 通過依賴注入和面向接口實現(xiàn)松耦合;
- 基于切面和慣例進行聲明式編程始苇;
- 通過切面和模板減少樣板式代碼砌烁。
2 容器
容器是Spring框架的核心,Spring自帶了多個容器實現(xiàn)催式,可以歸為兩種不同的類型函喉。
- bean工廠(由org.springframework.beans.factory.BeanFactory 接口定義)是最簡單的容器,提供基本的DI支持荣月。
- 應用上下文(由org.springframework.context.ApplicationContext接口定義)基于BeanFactory構(gòu)建管呵,并提供應用框架級別的服務,例如從屬性文件解析文本信息以及發(fā)布應用事件給感興趣的事件監(jiān)聽者喉童。
bean工廠相對來說比較低級撇寞,所以常用的是應用上下文顿天。
Spring自帶了多種類型的應用上下文:
- AnnotationConfigApplicationContext:從一個或多個基于Java的配置類中加載Spring應用上下文堂氯。
- AnnotationConfigWebApplicationContext:從一個或多個基于Java的配置類中加載Spring Web應用上下文。
- ClassPathXmlApplicationContext:從類路徑下的一個或多個XML配置文件中加載上下文定義牌废,把應用上下文的定義文件作為類資源咽白。
- FileSystemXmlapplicationcontext:從文件系統(tǒng)下的一個或多個XML配置文件中加載上下文定義。
- XmlWebApplicationContext:從Web應用下的一個或多個XML配置文件中加載上下文定義鸟缕。