Spring框架

来源:互联网 发布:最陡下降算法 编辑:程序博客网 时间:2024/06/15 01:29
SSM框架Spring框架
Spring是一个开源的轻量级的Java SE(Java标准版本)/Java EE(Java企业版本)开发应用框架。其目的是用于简化企业级应用程序的开发。

Spring工作原理:创建一个对象不用new,可以自动产生,然后在运行时去创建和调用对象

Spring工作流程:用户向服务器发送请求,被Spring前端捕获;DispathcherServlet对请求URL进行解析,获得请求资源标识符(URI),然后调用HandlerMapping获得该Handler而配置的所有相关对象,最后以HandlerExceutionChain对象的形式返回;DispathcherServlet根据获的Handler选择一个合适的HandlerAdapter;提取Request中的模型数据,填充Handler入参,开始执行Handler

Spring除了不可以帮我们写业务逻辑之外,其余的几乎什么都能帮我们简化开发
一、Spring帮我们根据配置文件创建及组装对象之间的依赖关系
二、Spring面向切面编程帮我们无耦合的实现日志记录,性能统计和安全控制
三、Spring帮我们管理数据库事物
四、Spring提供了与第三方数据访问框架(如JPA,Hibernate)无缝集成,自己也提供了一套JDBC来访问模块,方便数据库访问
五、Spring提供了与第三方Web(如Struts,JSF)框架无缝集成,自己也提供了Spring MVC框架来方便web层搭建
六、Spring能方便的与Java EE(如Java Mail,任务调度)整合,与更多技术整合(如缓存框架)

Spring核心容器:Core、Beans、Context、EL模块
Core:封装框架依赖的最底层部分
Beans:提供了框架的基础部分
Context:以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化、Java EE支持、容器生命周期、事件传播等;核心接口是ApplicationContext
EL:提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring 容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。

Spring核心:控制反转(IOC)和面向切面编程(AOP)

IOC:简单的来说就是被调用者不再由调用者来获取
AOP:是Spring提供的关键特性之一,是OOP编程的有效补充

AOP概念
Aspect:切面,切入系统的一个切面
Join point:连接点,可以进行横向切入的位置
Advice:通知,切面在某个连接点执行的操作
Pointcut:切点,真正被切入的地方

使用Spring的好处
1.轻量级
2.通过控制反转实现松散耦合
3.支持面向切面编程,把业务逻辑和系统服务分开
4.包含并管理应用中对象的生命周期和配置
5.提供一个持续的事务管理借口,可以扩展到上至本地事务下至全局事务
6.把具体技术相关的异常转化为一致的unchecked异常

控制反转(IOC)的优点
1.把应用的代码量降到最低
2.使应用容易测试
3.单元测试不再需要单例和JNDI查找机制
4.最小的代价和最小的侵入性使松散耦合得以实现
5.支持加载服务是的饿汉式初始化和懒加载

Spring IOC负责:创建对象,管理对象,装配对象,配置对象并且管理这些对象的生命周期

构造器依赖注入:构造器通过容器触发一个类的构造,该类有一系列参数,每个参数代表一个对其他类的依赖
Setter依赖注入:容器创建一个无参构造或者一个无参静态工厂方法实例对象,调用bean的setter方法实现setter依赖注入

Spring框架中 bean不是线程安全的