1、简化java开发
- 基于pojo的轻量级和最小侵入性编程
- 通过依赖注入和面向接口轻松实现耦合
- 基于切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码
2、依赖注入DI
3、应用切面
4、Spring容器
- bean工厂(由org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,提供基本的DI支持;
- 应用上下文(由org.springframework.context.ApplicationContext接口定义)基于BeanFactory构建,并提供应用框架级别的服务,例如从属性文件解析文本信息以及发布应用事件给感兴趣的事件监听者。
- Spring自带了多种类型的应用上下文
- AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载Spring应用上下文
- AnnotationConfigWebApplicationContext:从一个或多个基于java的配置类中加载Spring Web应用上下文
- ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。
- FileSystemXmlApplicationContext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
- XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义
5、Spring框架由6个定义良好的模块分类组成
-
Spring核心容器
Beans, Core, Context,Expression,ContextSupprot -
Spring的AOP模块
AOP, Aspects -
数据访问与集成
JDBC, Transaction, ORM, OXM, Messaging, JMS -
Web与远程调用
Web, Web Servlet, Web portlet, WebSocket -
Instrumentation
instrument, instrument Tomcat -
测试
test