什么是框架
高度抽取可重用性的一种设计。多个可重用模块的集合,形成一个某个领域的整体解决方案。
Spring
容器(可以管理所有的组件(类))框架;
核心关注:IOC和AOP;
Test:Spring的单元测试模块。
spring-test-5.2.3.RELEASE
Core Container:核心容器(IOC)
spring-beans-5.2.3.RELEASE、
spring-core-5.2.3.RELEASE、
spring-context-5.2.3.RELEASE、
spring-expression-5.2.3.RELEASE
AOP+Aspects(面向切面编程模块)
spring-aop-5.2.3.RELEASE、
spring-aspects-5.2.3.RELEASE
数据访问
spring-jdbc-5.2.3.RELEASE、(数据访问)
spring-orm(Object Relation Mapping)-5.2.3.RELEASE、(数据访问)
spring-oxm(xml)-5.2.3.RELEASE、(集成)
spring-jms-5.2.3.RELEASE、(集成)
spring-tx-5.2.3.RELEASE(事务)(数据访问)
Web:Spring开发web应用的模块
spring-websocket(新技术)-5.2.3.RELEASE、
spring-web-5.2.3.RELEASE(和原生的web相关(servlet))、
spring-webmvc-5.2.3.RELEASE(开发web项目的(web))、
spring-webmvc-portlet-5.2.3.RELEASE(开发web应用的组件集成)
用什么功能,导什么jar包
IOC
Inversion Of Control:控制反转。
控制:资源的获取方式:
- 主动式:要什么资源自己创建
BookServlet{
BookService bs = new BookService();
}
- 被动式:资源获取不是我们自己创建,而是交给一个容器来创建和设置。
BookServlet{
BookService bs;
public void test{
bs.xxx();
}
}
容器:管理所有的组件(类)。主动new变为被动接收资源。
假设,BookServlet受容器管理,BookService也受容器管理;容器可以自动的探出那些组件(类)需要用到另一个写组件(类);容器帮我们创建BookService对象,并把BookService对象赋值过去。
DI(依赖注入)
容器知道哪个组件(类)运行的时候,需要另外一个类(组件);容器通过反射的形式,将容器中准备好的BookService对象注入(利用反射给属性赋值)到Bookservlet中;
写框架流程
- 导包
commons-logging-1.2(Spring运行的时候依赖一个日志包,没有就报错)
spring-beans-5.2.3.RELEASE
spring-core-5.2.3.RELEASE
spring-context-5.2.3.RELEASE
spring-expression-5.2.3.RELEASE - 写配置(xxx.xml)
一个Bean标签可以注册一个组件(对象、类);
class:写要注册的组件的全名;
id:这个对象的唯一标识;
property:这个标签为xxx对象的属性赋值;
name=“xxx”:指定属性名;
value=“xxx”:为这个属性赋值 - 测试
ApplicationContext:代表IOC容器;
ClassPathXmlAppliactionContext:当时应用的xml配置文件在Class路径下。
注:
IOC容器在创建这个组件对象的时候,(property)会利用setter方法为javaBean进行赋值。
javaBean的属性名是由getter/setter方法的名字决定。
src,源码包开始的路径,称为类路径的开始;所有源码包里面的东西都会合并放在类路径里面;java:/bin/;web:/WEB-INF/classes/