spring主要的作用?
Spring框架是为了解决企业应用开发的复杂性而创建的。
Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。
扩展资料
优点
1、JAVA EE应该更加容易使用。
2、面向对象的设计比任何实现技术(比如JAVA EE)都重要。
3、面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度)
4、代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。
5、JavaBean提供了应用程序配置的最好方法。
6、在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常。
参考资料来源:百度百科-spring框架
为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语
句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致
是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts
负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的
依赖和强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和
Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正
是用在此处。
Spring的Ioc(控制反转和依赖注入)
控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直
接操控。
依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注
入到组件之中。
从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的
业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的
方法接口就可以了。而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,
甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访
问的效率又使业务逻辑看起来很复杂,代码量也很多。,Spring容器控制所有Action对象和
业务逻辑类的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦,
使程序运行起来效率更高,维护起来也方便。
使用Spring的第二个好处(AOP应用):
事务的处理:
在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在
Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,
包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,
大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管
理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对
SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对
SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免
了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的
Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使
开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng AOP隔离降低了
程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度。
简化理解如下:
Spring容器的两个主要功能 IOC 和DI。
所谓IOC 就是:如果没有Spring,以前我们要创建对象,做法是我们自己new(新建)一个,有了Spring,就相当于在Spring里,它已经自己new了。自己就不用动手new了。
至于为什么要在Spring里new而不是自己new,是因为在Spring里new,可以大大降低各组件间的耦合性(新手先学会怎么new,怎么配置,后期再来考虑Spring的好处)。
什么是依赖注入(DI)。举个例子,如果想打篮球,不可能空手去打吧,必须先有个篮球,然后才是打球。所谓的篮球就是上面的IOC的内容(先用Spring创建一个篮球出来),而打球(DI),则要依赖于先有篮球,在有篮球的基础上才有条件进行下一个动作,比如投球,比如上篮,比如带球过人。
以下是官方答案。这个答案对新手很不友好,新手请保重,越看就越懵:
IoC的全称是Inversion of Control,中文名称为控制反转。控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。
DI的全称是Dependency Injection,中文称之为依赖注入。它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。