分享人:王汇通
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
9.鸣谢
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
一丶基于POJO类的轻量级和最小侵入性编程
二丶通过依赖注入和面向接口实现耦合
三丶基于切面和惯例进行声明式编程
四丶通过切面和模板减少样板式代码
一丶低侵入设计,独立性强
二丶兼容性强,能融合各种框架模块
三丶开发效率高,易于维护,易于测试,等等
IOC: Inversion of Control (控制反转) : 就是把要在程序中实例化的对象配置到文件中,在程序中不用new来产生,而是让容器通过配置文件返回一个给你,好处就是当需要更改业务逻辑时,方便替换对接口的不同实现类。
AOP: Aspect Oriented Programming (面向切面编程) 用来在系统中提升业务的分离,把日志、安全、事务等东西和核心业务分离开,甚至核心业务都不知道它们的存在。基本实现就是对相关的方法进行拦截,添加所需的处理动作。
一丶工厂设计模式
二丶xml配置文件
三丶dom4j解析xml文件
四丶采用反射设计模式创建对象
一丶set方法注入
二丶有参构造方法注入
三丶接口注入
一丶谁控制谁?控制什么
二丶为何是反转,哪些方面反转了:
三丶依赖注入,谁依赖谁,注入了什么?
一丶IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对象的创建;谁控制谁?当然是IOC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。
二丶传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。
三丶它把传统上由程序代码直接操控的对象的调用权交给容器,某个对象所需要的外部资源(包括对象、资源、常量数据)。
在SpringMVC项目中,Spring创建的容器与SpringMVC创建的容器有什么关系?它们分别负责哪些bean的注册?
参考一:百度
参开二:简书
参考三:知乎
感谢观看,如有出错,恳请指正