Spring框架(一)
我们了解一个新的知识,要首先了解它是什么?然后再深入了解它有什么用?再了解它能做什么?
Spring的定义:
Spring是一种javaee轻量级一站式的javaee开发框架。
什么是轻量级呢?
所谓轻量级就是,使用最少代码启动框架,然后我们可以根据自己的需求自由选择自己需要的模块使用
什么是一站式呢?
所谓一站式就是指,spring框架提供了持久层(Controller)、服务层(Service)、持久层(Dao)所有
支持,功能齐全,样式多。
Spring框架在现实开发中具体有什么用呢?
Spring框架主要用于整合其他的框架
我们如何去搭建一个简单的Spring框架呢?
搭建步鄹和配置流程图:
1.创建一个自定义的类
2.创建一个Spring配置文件,配置文件用来配置类和描述类与类之间的关系
3.创建一个applicationContext容器对象根据Spring配置文件的描述,将对象创建并且放在
Spring容器里面
4.使用applicationContext容器对象的getBean方法,调用Spring容器里面的对象
Spring框架包
框架包的下载
Spring官方提供的Maven下载。
但是基于简单入门的原则,我们要通过导入包的方式来学习。需要下载框架的zip包
路径为:http://repo.springsource.org/libs-release-local/org/springframework/spring/
目录说明
--根目录
--类库规则
--包说明
包名 |
说明 |
spring-aop-4.2.9.RELEASE.jar |
实现了AOP的支持 |
spring-aspects-4.2.9.RELEASE.jar |
AOP框架aspects支持包 |
spring-beans-4.2.9.RELEASE.jar |
内核支撑包,实现了处理基于xml对象存取 |
spring-context-4.2.9.RELEASE.jar |
内核支撑包,实现了Spring对象容器 |
spring-context-support-4.2.9.RELEASE.jar |
容器操作扩展包,扩展了一些常用的容器对象的设置功能 |
spring-core-4.2.9.RELEASE.jar |
内核支撑包,Spring的内核 |
spring-expression-4.2.9.RELEASE.jar |
内核支撑包,实现了xml对Spring表达式的支持 |
spring-instrument-4.2.9.RELEASE.jar |
提供了一些类加载的的工具类 |
spring-instrument-tomcat-4.2.9.RELEASE.jar |
提供了一些tomcat类加载的的工具类,实现对应Tomcat服务的调用 |
spring-jdbc-4.2.9.RELEASE.jar |
SpringJDBC实现包,一个操作数据库持久层的子框架 |
spring-jms-4.2.9.RELEASE.jar |
集成jms的支持,jms:Java消息服务。 |
spring-messaging-4.2.9.RELEASE.jar |
集成messaging api和消息协议提供支持 |
spring-orm-4.2.9.RELEASE.jar |
ORM框架集成包,实现了Hibernate,IBatis,JDO的集成。 |
spring-oxm-4.2.9.RELEASE.jar |
Spring OXM对主流O/X Mapping框架做了一个统一的抽象和封装。就是对应XML读写框架的支持 |
spring-test-4.2.9.RELEASE.jar |
Spring集成JUnit测试 |
spring-tx-4.2.9.RELEASE.jar |
事务代理的支持 |
spring-web-4.2.9.RELEASE.jar |
SpringWeb通用模块 |
spring-webmvc-4.2.9.RELEASE.jar |
SpringMVC子框架 |
spring-webmvc-portlet-4.2.9.RELEASE.jar |
Spring对门户技术(portlet)的支持 |
spring-websocket-4.2.9.RELEASE.jar |
Spring对websocket的支持 |
在使用Spring框架时,我们要理解一个概念
IOC(控制反转的概述)
Spring框架为什么被称为轻量级(模块的可插拔)的javaee开发框架呢?
因为实现程序可以插拔的核心理念就是,控制反转
如图所示:
Spring中的标签说明
1.<alias>标签,别名标签。为已配置的bean设置别名
属性说明:
name必要属性,代表为哪一个bean配置别名此属性的值为其他bean标签的id或name属性值
alias必要属性,代表新命名的别名是什么
2.<bean>标签的配置,用于声明一个类,在启动Spring框架的时候根据该配置的类创建对象到容器里面
属性说明:
name:设置对象名(唯一标识符)
id:设置对象名(唯一标识符,功能和name一样)
class:用于指定对象对应的类名,如果不是实现类必须要将bean声明为抽象的
scope:用于设置的对象的作用范围,其中有两种参数
singLeton单例(不创建scope属性时,默认就是单例的)
prototype原型对象
request:web项目中,Spring将创建的对象放在request作用域中,一次请求
session:web项目中,Spring将创建的对象放在session作用域中,一次会话
init-method:设置创建对象的时候,调用初始化方法
destory-method:设置对象呗回收时,调用注销的方法(若是原型时,该方法始终不会被执行)
实例化bean的四种方式
1.通过class直接创建
2.通过静态方法工厂创建
3.通过实体工厂创建
4.内置FactoryBean工厂创建对象的实现
Spring依赖注入
什么是依赖注入呢?
就是属性不用new创建对象,通过配置文件的配置将Spring容器里面的对象注入给对应的属性
1.set方式注入
2.构造方法注入
3.p标签直接注入