一、Spring是什么?
Spring框架是一个开源的Java平台,作为一个主流的SSH框架之一,该框架的核心功能可以在任何Java应用程序中使用,也有扩展的Java EE平台上构建Web应用程序。 Spring框架最重要的两个内容就是依赖注入(IOC)和面向切面(AOP)编程。二、使用Spring框架的好处:
a、纯java对象。Spring 使开发人员使用POJO来开发企业级应用程序。仅使用POJO的好处是不需要EJB容器产品,如应用服务器,但必须只使用一个强大的servlet容器,如Tomcat 或某些商业产品的选择。同时,也为测试提供了某种便捷性,不需要依赖某种框架。
b、整合众多框架。Spring 被组织在一个模块化的方式。虽然包和类的数量是巨大的,你只有担心那些需要的,而其它的就可以忽略了。Spring不重新发明轮子,而是真正利用了一些像一些ORM框架,日志框架,JEE,Quartz和JDK定时器。同时,Spring web框架是一个设计良好的Web MVC框架,它提供了一个很好的替代Web框架,如Struts或其他过度设计或不太流行的Web框架以及其他视图技术的现有技术。
c、控制反转(IoC)和面向切面(AOP)。通过IoC不再让对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。而AOP则是针对那些独立于业务的但是又具有公共性服务的功能进行编程,例如日志管理,事务管理等。
三、核心:
依赖注入(DI):
Spring框架核心之一就是依赖注入,也做控制反转(DI)。控制反转(IoC)是一个笼统的概念,它可以表现在
许多不同的方式。依赖注入仅仅是控制反转的一个具体的例子。当编写一个复杂的Java应用程序,应用程序类应该尽
可能独立其他Java类来增加重复使用这些类,并独立于其他类别的测试它们,而这样做单元测试的可能性。依赖注入
有助于粘合这些类在一起,同时保持他们的独立。
Spring提供了三种注入方式:接口注入,set注入,构造注入。
面向切面编程(AOP):
Spring的一个关键内容就是面向切面编程(AOP)。跨越多个点的应用程序的功能被称为横切关注点和这些横切
关注点是从应用程序的业务逻辑概念上区分开来。有方面的各种常见很好的例子包括日志记录,声明性事务,安全性
和高速缓存等。
模块化的OOP关键单元是类,而在AOP中模块化的单元则是切面。DI帮助您从彼此分离的应用程序对象,AOP可以
帮助你消除来自他们影响的对象横切关注点。Spring框架AOP模块提供了面向方面编程实现,允许您定义方法拦截器和切入点,使得开发更高效快捷。
PS:对于Spring的控制反转和面向切面编程,这里先大致了解一下,后面的内容详细介绍。
言而总之,Spring作为一个轻量级,非侵入性框架,通过依赖注入和面向切面编程两大核心为项目应对变化,可扩展,代码复用等提供了可能。