黑马程序员技术交流社区
标题:
学习笔记
[打印本页]
作者:
java是最好语言
时间:
2019-9-10 14:55
标题:
学习笔记
一、Spring框架的组成
轻量级J2EE应用开发框架
- 主要构成:依赖注入容器,AOP实现、DAO/ORM支持、Web集成
- Core封装包:框架的最基础部分,提供IoC依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许从成程序逻辑中分分离出依赖关系和配置。
- 构建与Core封装包基础上的Context封装包,提供了一种框架式的对象访问方法,有些像JNDI注册器。Context封装包的特性来自于Beans封装包,并添加了对国际化(I18N)的支持(如资源绑定)时间传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器
- DAO提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJO都适用。
- ORM封装包提供了常用的“对象-关系”映射API的集成层。利用ORM封装包,可以混合使用所有Spring提供的特性进行”对象-关系“映射。如简单声明性事务管理。
- Spring的AOP封装包提供了符合AOP(Aspect—oriented-programming)面向切面编程。
- Spring的Web包提供了基础的针对web开发的集成特性,当与WebWork或struts一起使用Spring时,这个包可以与其他框架结合。
- Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架提供了一种清晰的分离模型。Spring的MVC框架提供了一种清晰的分离模型,在领域模型代码和web form之间,并且还可以借助Spring框架的其他特性。
二、Spring框架的作用
典型的应用程序开发过程中,开发人员使用Struts、WebWork等应用程序框架开发前端程序,而采用JDO、Hibernate等持久层框架进行数据库操作,使用Spring IoC容器(控制反转)对整个系统中的组件进行配置和管理。
依赖注入实现方式的比较
Type1 接口注入
历史悠久,在大量的容器、框架设计中都有采用,例如servlet,struts1等
灵活性、易用性不足,目前依赖注入模式的开发中Type2、Type3成为主流
Type2 设值注入
近似于传统的javabean模式,对于程序员来说,通过setter方法来设置依赖关系更加直观、自然
避免了庞大臃肿的构造函数,特别是在依赖关系复杂的情况下不用在构造函数中出现众多的构造函数,在编码中更为简洁
在某些框架中,对构造函数有一定的限制(往往要求提供一个默认的构造函数)这时Type3方式就显得无能为力。
Type3 构造参数注入
完全符合”在构造期即创建一个完整的、合法的对象“的java设计原则
所有的依赖关系在构造方法中集中体现
由于没有setter方法能改变依赖关系,所有组建在创建之后处于相对”稳定“状态。同时在一定程度上也对外界屏蔽了依赖关系的细节。
对于复杂的依赖关系,可以通过构造方法决定依赖关系注入的顺序。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2