1.简介及优势
(1)软件框架是一个应用程序的半成品
(2)规定了框架之间公共的内容,不需要关注这些,只需要关注业务实现
(3)主要负责对象的创建和销毁(只需要提供对象引用的名,spring会自动为其创建)
(4)基于java的轻量级框架
2.体系结构
spring总共有大约20模块,由1300多个不同的文件构成。而这些组件被分别整合在6个模块中:
(1)核心容器(Core Container)
(2)AOP
(3)设备支持
(4)数据访问及集成
(5)Web报文发送
(6)Test测试
3.两大核心
(1)DI:依赖注入(一个类依赖于另一个类的对象,由spring的IoC容器完成对象的创建和赋值)
a.介绍
1)一种设计模式,Spring框架的核心概念之一
2)作用是去除组件之间的依赖关系,实现解耦合
3)指工程中需要的组件无须自己创建,而是依赖于外部环境注入
4)实现的三种方式
a.注解方式(官方推荐方式)
b.xml配置文件方式
c.javaConfig方式
b.两种方法注入
1)通过setter方法进行注入
创建属性
提供访问该属性的setter方法
在spring的配置文件中通过property进行配置
2)通过构造方法进行注入
创建属性
创建带参的构造方法
在spring配置文件中通过<constructor-arg value=""/>进行配置
(2)AOP:面向切面编程,把分散在各个方法中的公共内容进行集中管理,记录日志、事务的管理
4.如何使用
(1)添加依赖的jar文件(相关联的都加入)
(2)添加spring的配置文件
1)添加需要管理的bean
<bean id="" class="" >
<property name="" ref=""/>
</bean>
2)使用注解,在配置文件中添加包的扫描
<context:component-scan base-package=""/>
a.常用的注解:
Component:表示组件,可以通用
Repository:表示数据库操作,加在dao层
Service:业务逻辑,加在service层
Controller:控制器,加在控制层
以上添加在类上,方便spring创建对象
Autowired:加在属性或setter方法上,实现对象的注入
5.scope:表示spring框架创建对象的方式或范围
(1)singleton:默认值,表示单例
(2)prototype:多例,每次获取都创建一个新的对象
在web项目中
(3)request:请求级别,每次请求创建一个对象
(4)session:会话级别,当前浏览器窗口所有请求使用一个对象
(5)global Session:全局的会话,application级别,被访问该项目的所有用户共享,该程序使用一个对象
6.操作
(1)创建ApplicationContext对象
ApplicationContext context=new ClassPathXmlApplicationContext("配置文件");
(2)获取对象类型的对象
1)Object obj=context.getBean("id");
2)T t=context.getBean(T.class); //必须保证T类型在spring中的对象只有一个
3)T t=context.getBean("id",T.class);
7.在编程过程中,各层之间依赖的都是接口
8.HttpSession:表示客户端与服务器之间的链接,可以发送多次请求,当前会话被每一个请求共享,当窗口关闭,session失效