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。