Spring是什么?
1.Spring是分层的JavaSE/EE应用的轻量级开源框架,以IOC(Inverse of Control–>控制反转)和AOP(Apspect Oriented Programming–>面向切面编程)为内核,提供了表现层SpringMVC和持久层SpringJDBC 以及业务层等企业的应用级的应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的javaEE 企业应用开源框架
2.Spring之父–>Rod Johnson
3.Spring的优势:
方便解耦,简化开发:提供的IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免编码所造成的过度的程序的耦合,用户也不必再为单例模式类,属性文件解析等这些底层的需求编写代码,可以更加专注于上层额应用
AOP编程的支持:通过Spring的AOP的功能,方便进行面向切面的编程,许多不容易使用oop实现的功能,都可以通过AOP轻松应付
声明式事务的支持:可以将我们从单调烦闷的食物管理代码中解脱出来,通过声明式方式继续宁灵活的十五管理
方便程序的测试:可以使用非容器依赖的编程方式进行几乎所有的测试工作,测试工作不再是昂贵的操作,而是随手可得的事情
降低javaEE API的使用难度:Spring对Java EE AP进行了薄薄的封装层,使这些API的使用难度大大降低
Spring核心容器的核心jar包
Bean Core Context SpEL
工厂模式解耦*
在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。单独使用一个类进行配置文件的读取
那么存到哪里去呢?
由于我们要获取的是多个对象,而对象的存取肯定要用一个集合进行存储,map是最合适的(有查找的需求)
在应用加载时,创建一个Map,用于存放对象,键值对的形式-->该map集合在Spring容器中称为---->**容器**
何为工厂:
工厂激素hi负责给我们从容器中获取指定对象的类,这时候我们获取对象的方式发生了改变,工厂相当于是一个代理类的形式,利用工厂给我们获取对象的形式(改变了我们传统主动的去获取对象的形式--->进行new的形式,在堆里面开辟空间。从主动转换成被动,实现控制反转)
IOC的作用:削减计算机程序的耦合,解除我们的代码中的依赖关系