框架(半成品软件)高度抽取可重用代码的一种设计;
高度的通用性;
多个可重用模块的集合,形成一个某个领域的整体解决方案; Spring框架
Spring是一个容器框架(可以管理所有的组件(类));
核心关注IOC和AOP; Spring优良特性:1.非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API;
2.依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现;
3.面向切面编程:Aspect Oriented Programming——AOP
4.容器:spring是一个容器,因为它包含并且管理应用对象的生命周期;
5.组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和java注解组合这些对象
6.一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring自身也提供了表述层的SpringMVC和持久层的SpringJDBC)。 Spring
jar包一般三个一组,.jar为需要导的jar包,-javadoc.jar为文档,-sources.jar为源码
Spirng的模块分布图
Test:Spring的单元测试模块;
Core Container:核心容器(IOC),黑色代表这部分的功能有哪些jar包组成。SpEL的jar包为expression
AOP+Aspects:面向切面编程模块
数据访问(Data Access)/集成:JDBC、orm、 Transactions的jar包简写为tx(事物)都与数据访问有关
OXM和JMS都与集成有关
Web:Spring开发web应用的模块:
WebSocket、Servlet(jar包叫web)、Web(jar包叫webmvc)、Portlet(jar包叫webmvc-portlet)
建议用哪个模块,导哪个包;
———————————————————————————————————————————————
开发Spring框架的应用,经常要写框架的配置文件,写起来非常复杂,需要提示,所以要给eclipse安装插件
1.查找自己的eclipse的版本号,Help-About Eclipse-点击自己的Eclipse图标–
2.安装插件
IOC
inversion(反转) of control:控制反转
控制:资源的获取方式:
1.主动式:(需要什么资源都要自己创建)
BookServlet{
BookService bs=new BookService();//
}
2.被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置
BookServlet{
BookService bs;
public void test(){
bs.checkout():
}
}
容器:管理所有的组件(有功能的类);假设,BookServlet受容器管理,BookService也受容器管理;容器可以自动探查哪些组件(类)需要用到另一些组件(类);容器会帮我们创建BookService对象,并把BookService对象赋值过去;
容器:由主动的new资源变为被动的接收资源;(类似于婚介所) IoC现有的实现: tomcat就是一个IoC的实现容器, tomcat可以创建servlet, listener,filter,并把这些对象放在tomcat的内部(map)保存。所以tomcat是一个容器,可以在程序代码之外创建servlet对象。tomcat也叫做jsp/servlet容器
spring是一个容器,可以完成对象创建,属性赋值,管理对象之间的关系。
IoC的实现技术:
DL:依赖查找,需要在服务器端配置对象的信息,在程序中需要使用特定的类和方法才能获取到服务器中的对象。
DI:依赖注入,在程序中,通过对象的名称就可以获取到对象,至于对象的创建,保存,从容器中查找对象都由容器内部实现
spring框架使用的DI这种技术,实现IoC的功能。 spring底层创建对象,赋值属性使用的是jdk中的反射机制。
框架编写流程:1.导包;
注意:Spring运行的时候依赖一个日志包:commons-logging-1.1.3.jar,没有就会报错
2.写配置
Spring的配置文件中,集合了 Spring的ioc容器管理的所有组件(会员清单);
创建一个Spring Bean Configuration File(Spring的bean配置文件)
3.测试
|