Spring入门
##什么是Spring(Spring的概述)
- Spring是一个开源框架
- Spring为简化企业级应用开发而生。使用Spring可以使JavaBean实现以前只有EJB才能实现的功能
- Spring是JavaSE/EE的一站式框架
- Web层–SpringMVC
业务层–Bean管理、IOC、事务管理
持久层–使用JDBC模版、与其他ORM框架进行整合
Spring的优点
- 方便解耦,简化开发
- –Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
- AOP编程的支持
- –Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
- 声明式事务的支持
- –只需要通过配置就可以完成对事务的管理,而无需手动编程
- 方便程序的测试
- –Spring对Junit4支持,可以通过注解方便的测试Spring程序
- 方便集成各种优秀框架
- –Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis等)的直接支持
- 降低JavaEE API的使用难度
- –Spring对JavaEE开发中非常难用的一些API(JDBC,JavaMail,远程调用等),都提供了封装,使这些API应用难度大大降低
Spring的模块
- 核心容器(Core Container)
- AOP
- Web开发
- Data Access/Integration
Spring IoC的底层原理实现
- 传统方法开发:实例化对象,耦合度太高;
- 面向接口编程:Web层与业务层产生耦合
- 为了遵循OCP原则,选择工厂模式
- 工厂模式:在接口和实现类中使用工厂类来实例化对象,但还是会产生耦合
- 工厂+反射+配置文件-》解耦合,通过bean文件,在工厂类中使用getBeanId,加上类反射,从而解耦合
- 所以,IOC底层原理使用了反射模式和工厂模式
##IoC
- Inverse of Control,反转控制的概念
- 就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理;
- 简单说,就是创建UserService对象控制权被反转到了Spring框架
<bean></bean>
DI
- Dependency Injection,依赖注入的概念
- 就是在Spring创建这个对象的过程中,将这个对象所依赖的属性注入进去;
- 目的:在代码之外管理程序间组件的依赖关系;
<property></property>