Spring 是什么框架?
什么是 Spring 框架?
Spring 框架是一个轻量级的 Java 开发框架,为应用开发提供平台。 它是为了解决企业应用开发的复杂性而创建的 。框架的主要优势之一是分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供继承的框架。
Spring 使用基本的 JavaBean 来完成以前只能只可能由 EJB 完成。
Spring 提供 IOC 容器,可以将对象直接的依赖关系交由 Spring 进行控制,避免通过硬编码造成程序过度耦合。
Spring 提供 AOP 功能,方便进行面向切面的编程,传统 OOP 实现的功能可以通过 AOP 实现。
Spring 框架有哪些模块
- Spring Core: 基础,可以说是 Spring 其他所有功能都依赖于该类库,主要提供 IOC 和 DI 功能。
Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
- Spring Aspects: 该模块为 AspectJ的继承提供支持。
- Spring AOP :提供面向方面发编程实现。
Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。
- Spring DAO JDBC : Java 数据连接。
DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。
- Spring JMS:Java 消息服务。
- Spring ORM: 用于支持 Hibernate
ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。
- Spring Context 提供了关于 UI 支持,邮件支持。
构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
- Spring Web 提供了 web 的一些工具类的支持。
- Spring MVC 提供了 web mvc, webviews ,jsp , pdf , export
常见的问题
Java 中依赖注入的方式
1)构造器注入;
2)Setter方法注入;
3)接口注入
Spring IOC 是什么?
Spring中的 org.springframework.beans 包和 org.springframework.context包构成了Spring框架IoC容器的基础。
- BeanFactory 接口提供了配置机制,可使得任何类型的对象的配置成为可能。
- ApplicationContext 接口对 BeanFactory 进行了扩展,在 BeanFactory 的基础上增加了其他功能,提供了事件传播,还有 WebApplicationContext。
参考资料
- https://developer.ibm.com/zh/technologies/spring/articles/wa-spring1/
- http://blog.itpub.net/69902581/viewspace-2662511/