spring的理解
spring是一个开源框架,为简化企业应用开发而生。spring可以是使简单的javaBean实现以前只有EJB才能实现的功能。
1.spring可以帮我们根据配置文件创建及组装对象之间的依赖关系。
2.spring面向切面编程能够帮助我们低耦合的实现日志记录,性能统计,安全控制。一般通过配置方式,而且不需要在现有的代码中添加任何额外的代码,现有代码专注业务逻辑。
3.spring能非常简单的帮我们管理数据库事务,采用spring我们主需要获取连接,执行SQL其他事务相关的都交给spring来管理。
4.Spring 还能与第三方数据库访问框架(如 Hibernate、JPA)无缝集成,而且自己也提供了一套 JDBC访问模板,来方便数据库访问。
5.Spring 还能与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套 Spring MVC框架,来方便web 层搭建。
- Spring 能方便的与 Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。
Spring是一个 IOC 和 AOP的容器框架;
容器主要核心是:
控制反转IOC
在以前,传统的java开发方式中,当需要一个对象时,我们会自己使用NEW或者getInstance等直接或间接的调用构造方法创建一个对象。在Spring开发模式中,Spring容器是用了工厂模式为我们创建了所需要的对象,无需自己创建,可以直接调用Spring提供的对象,这就是控制反转思想。
IOC控制反转:SpringIOC负责创建对象,管理对象,通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。
IOC的优点就是依赖注入把应用的代码量降到最低。IOC 容器支持加载服务时的饿汉式初始化和懒加载。
依赖注入DI
Spring使用javaBean对象的set方法或带参数的构造方法为我们创建所需对象时将其属性自动设置所需的值的过程,就是依赖注入的思想。
依赖注入的方式
spring提供了多种依赖注入的方式
- Set注入
- 构造器注入
- 静态工厂的方法注入
- 实例化工厂的方法注入
面向切面编程AOP
在面向切面编程的过程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事务管理、记录日志等公用操作处理的过程就是面向切面编程的思想。AOP的底层就是动态代理,如果是接口采用的是JDK动态代理,如果是类,采用CGLIB方式实现动态代理。
补:面向对象编程OOP:
面向对象编程,我们是将事务纵向抽成一个个的对象。