Spring是一个强大而又“轻量级”的Java开发框架,之所以打引号是因为感觉并不是那么轻量。Spring的主要目的在于简化Java应用开发,以配置方式代替硬编码方式的编程,模块解耦,其架构如下图所示。包括了
数据访问、
远程通信、
AOP、
核心容器等部分。
Spring的核心主要有三点:
IoC:反转控制。
反转控制就是指将控制权由类内部抽离到容器,由容器类的实例化及动作进行配置管理。
Dependency-injection:依赖注入
对象的依赖关系由负责协调系统中各个对象的第三方组件在创建对象时设定。对象不自行创建或管理它们的依赖关系,依赖关系被自动注入到需要它们的对象中。通过参数和配置能够体会出“注入”这个词在这里有多形象。依赖注入的最大好处就是松耦合。不需要再类内部去和特定的类进行绑定,而是将一些依赖关系以参数的形式注入到类内部。
Aspect Oriented Programming:面向切向编程
在软件开发中,分布于应用中多处的功能被称为横切关注点。这些横切关注点往往和业务逻辑是相分离的,将这些横切关注点与业务逻辑相分离正式AOP要解决的。AOP编程能够让遍布在应用各处的功能分离出来形成可重用的组件。是高内聚低耦合的又一个体现,将通用实现模块与核心业务模块相分离。
《Spring in Action》阅读笔记
spring 出现的目的:
原本EJB2种,如果
其实很多方法不需要。
依赖注入:
Sping的容器可以分为两种类型
1. BeanFactory:(org.springframework.beans.factory.BeanFactory接口定义)是最简答的容器,提供了基本的DI支持。
最常用的BeanFactory实现就是XmlBeanFactory类,它根据XML文件中的定义加载beans,
该容器从XML文件读取配置元数据并用它去创建一个完全配置的系统或应用。
2. ApplicationContext应用上下文:(org.springframework.context.ApplicationContext)基于BeanFactory之上构建,并提供面向应用的服务。
4. ApplicationContext通常的实现
ClassPathXmlApplicationContext:从类路径下的XML配置文件中加载上下文定义,把应用上下文定义文件当做类资源。
FileSystemXmlApplicationContext:读取文件系统下的XML配置文件并加载上下文定义。
XmlWebApplicationContext:读取Web应用下的XML配置文件并装载上下文定义。
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
还有使用注解装配的
AOP:
Spring的JDBC
更加细化的bean生命周期
hibernate