三层架构与Spring重要性
表现层:
负责UI展现和前端与后端的交互,不处理业务
业务逻辑层:
处理业务逻辑与算法处理。整个系统的核心
数据访问层:
操作数据库进行增删改查
Spring提供一站式解决方案
SpringMVC表面层
Spring事务业务逻辑层
Mybatis数据访问层
SpringFramework体系结构图
核心容器
数据访问层
Web层
AOP模块
植入模块
消息传递
测试模块
核心容器:
Spring的核心容器是其他模块建立的基础,有Spring-core、Spring-beans、Spring-context、Spring-context-support和Spring-expression(Spring表达式语言)等模块组成
Spring-core模块:提供了框架的基本组成部分,包括控制反转(IOC)和依赖注入(DI)功能
Spring-beans模块:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean
Spring-context模块:建立在Core和beans模块的基础上。提供了一个框架式的对象访问方式,是访问定义和配置的任何对象的媒介。ApplicationContext接口是Context模块的焦点
Spring-context-support模块:支持整合第三方库到Spring应用程序上下文,特别是用高速缓存和任务调度的支持
、
Spring-expression模块:提供了强大的表达式语言去支持运行时查询和操作对象图,这是对JSP2.1规范中规定的统一表达式语言的扩展,该语言支持设置和获取属性值,属性分配、任务调用、方法调用、访问数据、集合合索引器的内容、逻辑和算术运算、变量命名以及Spring的IOC容器中以名称检索对象,它还支持列表投影、选择以及常用的列表聚合
Spring的优势:
解耦、轻量级、可插拔
详细技术核心优势:
IOC :Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理
SpringMVC:Spring的wen框架是一个设计良好的web MVC框架,它为web框架,他可以替代囊肿的sevlet或者Structs
AOP:Spring提供了一个一致的事务管理界面,该界面可以缩小成一个本地事务(例如,使用一个单一的数据库)和扩展成一个全局事务
整合其他持久层框架:
整合mybatis,hibernate等持久层框架
六个方面来看Spring优势:
AOP编程的支持 :
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
声明式事务的支持:
只需要通过配置就可以完成对事务的管理,而无需手动编程
方便程序的测试:
Spring对Junit4支持,可以通过注解方便的测试Spring程序
方便集成各种优秀的框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持
降低了JavaEE API的使用难度
Spring对javaEE开发中非常难用的一些API都提供了封装,使这些API应用难度大大降低
Spring配置文件
Bean:
id:唯一标识
class:Bean的全路径名
scope:指对象的作用范围
子属性:
singleton:单例
prototype:多例
request:WEB项目中,Spring创建一个Bean的对象,将对象存入到request域中
session:WEB项目中,Spring创建一个Bean的创建对象,将对象存入到session域中
global session:WEB项目中,应用在Porlet环境,如果没有Portlet环境那么glibalSession相当于session
Bean生命周期配置
init-metod:指定类中的初始化方法名称
destroy-method:指定类中销毁方法名称
Bean实例化三种方式
无参构造方法实例化
工厂静态方法实例化
工厂实例方法实例化
Bean的依赖注入概念
依赖注入(Dependency Injection):它是Spring框架核心IOC的具体实现
Bean的依赖注入方式
构造方法
set方法
Bean的依赖注入的数据类型
上面的操作,都是注入的引用Bean,除了对象的引用可以注入,普通的数据类型,集合等都可以在容器中进行注入
注入的三种数据类型
普通数据类型
引用数据类型
集合数据类型
引入其他配置文件,分模块开发
Spring相关API
ApplicationContext的继承体系
applicationContext:接口类型,代表应用上下文,可以通过其实例获取Spring容器中的Bean对象
ApplicationContext的实现类
ClassPathXMLApplicationContext:它是从类的根路劲下加载配置文件
FileSystemXmlApplicationContext:它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置**
AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类来创建spring容器,它用来读取注解
getBean()方法使用
第一种:
xxx .getBean(“bean标签指定id”)
好处:可以在bean中指定多个相同路径的Bean,因为id具有唯一性
第二种:
xxx.getBean(xxx.class)
好处:Spring自动在指定的类中查找Bean,不需要强转
坏处:Bean中只允许出现相对应类路径一次
Spring配置数据源
数据源(连接池)的作用
Spring配置数据源
可以将DataSource的创建权交由Spring容器去完成
**
