Java语言自年问世以来,在编程语言市场一直占据最主流的地位,至今无人撼动。
我们在平时的java编程学习中,经常会接触到一个开发框架:Spring虽然很多开发人员天天在用这个框架,但是一直不能很好从宏观理解和把握它,甚至是在查阅了很多资料之后仍然是云山雾罩。通过本文知识,让我们花5分钟时间彻底了解他,相信聪明的你,看完一定会有收获。
定义:
Spring是一个对Bean生命周期进行管理的轻量级容器(相反EJB是重量级容器),并解决了J2EE开发中经常遇到的各种问题(比如IOC、AOP、WebMVC)。
组成:
主要由七部分组成,分别是:
SpringCore、SpringAOP、SpringORM、SpringDAO、SpringContext、SpringWeb和SpringWebMVC。
四个特点:
1)轻量和非侵入式(核心jar包只有1M)
2)IOC控制反转:(InversionofControl的缩写)
IOC可简单理解成:“不用你找,我来提供给你” 优点:IOC容器作为第三方“粘合剂”,可以实现对象之间的“解耦”。 缺点:
1)对于小项目,因为引入了新的框架,所以反而可能会增加开发成本。产品,那么会影响到整个项目,所以这也是一个隐性的风险。 2)由于IOC容器生成对象是通过反射方式,在运行效率上会有损耗(如果你要追求运行效率,就必须对此进行权衡)
3)AOP切面式编程:(AspectOrientedProgramming的缩写)
允许开发人员只做他们它们应该做的:
完成业务逻辑的实现
,仅此而已。
而对于一些系统级或框架级需求和服务(比如:日志审计(auditing)、事务管理(transaction)等),则全通过AOP切面方式实现,对业务零侵入。
4)MVC式编程:
SpringMVC可以被看做是一个企业解决方案级别的框架,
核心流程共分为3步:
a)客户端发送请求,服务器控制器(DispatcherServlet)通过调用HandlerMapping将请求转发给处理器(Controller)。
b)在Controller中调用Service或DAO来进行数据操作(ModelAndView用于存放从DAO中取出的数据,还可以存放视图数据)。
c)如果本次请求需要返回,则需要使用视图解析器(ViewResolver)组件(该组件根据Controller中的标识,找到对应视图并将响应response返回给用户)。
----------------------------------------十年技术沉淀,只做原创文章;及时