Spring
什么是Spring?
Spring是一个开源的Java EE开发框架。是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。
Spring的优点
轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。
控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。
面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。
容器:Spring包含并管理应用程序对象的配置及生命周期。
MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。
事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。
异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。
Spring框架有哪些模块?
什么是控制反转(IOC)?什么是依赖注入(DI)?
- IOC:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
- DI:所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
Spring的注解
- @Autowired:自动装配;@Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。
- @Resource:与@Autowired相似。
- @Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
- @Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
- @Service:对应的是业务层Bean;
- @Controller:对应表现层的Bean,也就是Action
- @Repository:用于标注数据访问组件,即DAO组件。
- @Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
Spring依赖注入(DI)的3中方法
- 1.构造器注入
public class xx {
private Manager manage;
public xx(Manager manage){
this.manage= manage;
}
}
- 2.set方法注入
public class xx {
private Manager manage;
public void setManager(Manager manage){
this.manage= manage;
}
}
- 3.接口注入
public interface Manager{
public void manage(Business business);
}
public class xx implements Manager{
private Business business;
@Override
public void manage(Business business){
this.business = business;
}
}
Spring是如何创建bean的?
- 1.读取XML文件
- 2.读取到< bean >将id和class其存放在一个对象A中
- 3.用集合List存放对象A
- 4.遍历List,采用反射技术根据className实例化对象
- 5.用map集合存放bean实例key=id value=对象
SpringMVC运行机制
- 1、客户端发送HTTP请求到服务器
- 2、SpringMVC的核心DispatcherServlet将请求交给HandlerMapping处理
- 3、HandlerMapping通过查询机制找到处理当前请求的Handler
- 4、DispatcherServlet将请求交给这个Handler处理
- 5、Handler处理完成后返回一个ModleAndView对象,这个对象包含视图逻辑名和数据对象
- 6、返回的视图逻辑名会通过视图解析器解析成真正的视图,并交给DispatcherServlet处理
- 7、DispatcherServlet将请求分派给真正的视图对象,并反映到客户端