什么是Spring?
spring简单来说就是一个框架,进一步来说就是一个容器,就是一种开发的生态
理解Spring需要知道JAVA基础知识(反射,Java注解,XML,掌握maven
Spring的主要核心是:
1:控制反转(IOC),传统的JAVA开发模式中,当需要一个对象时,我们使用new活着getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,Spring容器使用工厂模式为我们创建了所需要的对象,不需要我们自己去创建了,直接调用Spring提供的对象就可以了,这就是控制反转。
2:依赖注入(DI),Spring使用JavaBean对象的set方法或者带参数的构造方法为我们在创建所需要对象时将其属性自动设置为我们所需要的值的过程,这就是依赖注入。
3:面向切面编程(AOP),在面向对象编程(OOP)中,我们将事务纵向抽成一个个的对象,而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制,事务管理,日志记录等公用操作处理的过程,就是面向切面编程的思想。
Spring框架的优点
1.方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理。IOC的作用。
2.AOP编程的支持,Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。(可扩展性)底层实现是JDK的静态代理
3.声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。
4.方便程序的测试,Spring对Junit4支持,可以通过注解方便的测试Spring程序。
5.方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
6.降低JavaEE API的使用难度,Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。