Spring
1、框架:半成品软件
高度抽取可重用代码的一种设计;高度的通用性;
框架:抽取成一种高度可重用的;事务控制,强大的servlet(处理各种请求),项目中的一些工具。。。。。
框架:多个可重用模块的集合,形成一个某个领域的整体解决方案;
2、spring:
容器(可以管理所有的组件(类))框架;
spring的优良特性:
- 非侵入式:基于spring开发的应用中的对象可以不用依赖Spring的API;
- 依赖注入:DI,反转控制(IOC)的最经典的实现;
- 面向切面编程:AOP
- 容器:spring是一个容器,因为它包含并且管理应用对象的生命周期;
- 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,在spring中可以使用XML和java注解组合这些对象;
- 一站式;在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类(实际上Spring自身也提供了表述层的SpringMVC和持久层的spring JDBC);
核心关注:IOC和AOP;
3、spring(IOC和AOP):
三个一组:source是源码包;
Spring的模块划分图:
Test:Spring的单元测试模块;
Core Container:核心容器;黑色代表这部分的功能又哪些jar包组成;要使用这个部分的完整功能,这些jar包都需要导入
spring-bean-4.0.0 RELEASE、
spring-core-4.0.0 RELEASE、
spring-context-4.0.0 RELEASE、
spring-expression-4.0.0 RELEASE
AOP+Aspects(面向切面编程模块)
spring-aop-4.0.0.RELEASE
数据访问(Data Access)Spring数据库访问模块
spring-jdbc-4.0.0.RELEASE//数据访问
spring-orm(object Relation Mapping)-4.0.0.RELEASE//数据访问
spring-orm(object xml Mapping)-4.0.0.RELEASE//集成
spring-jms-4.0.0.RELEASE//集成
spring-tx-4.0.0.RELEASE(事务)//数据访问
web:Spring开发web应用模块
spring-websocket(新技术)-4.0.0.RELEASE
spring-web-4.0.0.RELEASE//和原生的web相关(servlet)
spring-webmvc-4.0.0.RELEASE//开发web项目的(web)
spring-webmvc-portlet-4.0.0.RELEASE//开发web应用的组件集成
备注:用哪个模块导入哪个模块,否则会加剧服务器的负担
开发Spring框架的应用,经常要写框架的配置文件,写起来复杂,我们需要提示;
需要给eclipse中安装插件(提供提示功能)
Spring(IOC和AOP):
IOC:控制反转
控制:资源的获取方式
主动式:(要什么资源自己创建)
BookServlet{
BookService bs=new BookService;
AirPlance ap=new AirPlance();//复杂对象的创建是比较庞大的工程;
}
被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置;
BookServlet{
BookService bs;
public void test01(){
bs.checkout()//
}
}
容器:
- 管理所有的组件(有功能的类):假设BookServlet受容器管理,BookService也受容器管理;容器可以自 动的探查出哪些组件(类)需要用到另一些组件(类);容器帮我们创建BookService对象,并把BookServlet 对象赋值过去;
- 主动的new资源变为被动的接受资源;
- 例子:(容器)婚介所:主动获取变为被动接受;
- DI:(Dependency Injection)依赖注入;容器能知道哪个组件(类)运行时,需要另一个类(组件);容器通过反射的形式,将容器中准备好的BookService对象注入到BookServlet中;
- 只要IOC容器管理的组件,都能使用容器提供的强大功能;
Hello,World;(通过各种方式给容器中注册对象)
以前是自己new对象,现在所有的对像交给容器创建;给容器中注册组件