按关键词阅读:
本文作者:阿波罗的手本文链接:
自学ssm->springboot->springcloud,所以很多东西会用但理解较浅 , 所以现在从最开始的ssm开始进行对原理以及运行过程的整理知识归纳 , 若有错误感谢指正 。
SpringSpring运行原理文章插图
1. Data Access/Integration(数据访问/集成)数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块 , 具体介绍如下 。
- JDBC 模块:提供了一个 JDBC 的抽象层 , 大幅度减少了在开发过程中对数据库操作的编码 。
- ORM 模块:对流行的对象关系映射 API , 包括 JPA、JDO、 Hibernate 和 iBatis 提供了的集成层 。
- OXM 模块:提供了一个支持对象/XML 映射的抽象层实现 , 如 JAXB、Castor、XMLBeans、JiBX 和 XStream 。
- JMS 模块:指 Java 消息服务 , 包含的功能为生产和消费的信息 。
- Transactions 事务模块:支持编程和声明式事务管理实现特殊接口类 , 并为所有的 POJO 。
- Web 模块:提供了基本的 Web 开发集成特性 , 例如多文件上传功能、使用的 Servlet 监听器的 IoC 容器初始化以及 Web 应用上下文 。
- Servlet模块:包括 Spring 模型—视图—控制器(MVC)实现 Web 应用程序 。
- Struts 模块:包含支持类内的 Spring 应用程序 , 集成了经典的 Struts Web 层 。
- Portlet 模块:提供了在 Portlet 环境中使用 MVC实现 , 类似 Web-Servlet 模块的功能 。
- Beans 模块:提供了 BeanFactory , 是工厂模式的经典实现 , Spring 将管理对象称为 Bean 。
- Core 核心模块:提供了 Spring 框架的基本组成部分 , 包括 IoC 和 DI 功能 。
- Context 上下文模块:建立在核心和 Beans 模块的基础之上 , 它是访问定义和配置任何对象的媒介 。 ApplicationContext 接口是上下文模块的焦点 。
- Expression Language 模块:是运行时查询和操作对象图的强大的表达式语言 。
- AOP 模块:提供了面向切面编程实现 , 允许定义方法拦截器和切入点 , 将代码按照功能进行分离 , 以降低耦合性 。
- Aspects 模块:提供与 AspectJ 的集成 , 是一个功能强大且成熟的面向切面编程(AOP)框架 。
- Instrumentation 模块:提供了类工具的支持和类加载器的实现 , 可以在特定的应用服务器中使用 。
- Test 模块:支持 Spring 组件 , 使用 JUnit 或 TestNG 框架的测试 。
当Spring框架出现后 , 对象实例不再由调用者来创建 , 即不通过直接new被调用者来创建对象 , 而是交给Spring容器来创建 。 这时候调用者的程序将不再进行直接控制 , 而实转交给了Spring容器 , 这就是Spring的控制反转 。
从Spring容器角度出发 , Spring容器负责将被依赖对象赋值给调用者的成员变量 , 相当于调用者注入它所有依赖的实例 , 这就是Spring的依赖注入 。
举一个很直白的例子:海绵宝宝做出第一个美味蟹黄堡 , 当海绵宝宝想做多几个蟹黄堡(调用者)时就得参照第一个蟹黄堡(被调用者)来进行制作 。 一旦第一个蟹堡王丢了或者变味了 , 他后面就没办法做出一模一样的美味蟹黄堡(耦合度高) , 所以这时候海绵宝宝把第一个蟹黄堡放到一个按照配方运转的制造机器里(Spring容器) , 往后创造新的蟹黄堡都交给制造机来控制(Spring的控制反转) 。
2.通过Web服务其方式实例化ApplicationContext容器(最常用的方式)Spring IoC容器的设计主要是基于BeanFactory和ApplicationContext两个接口 , 而ApplicationContext是BeanFactory的子接口
StudentShopping contextConfigLocationclasspath:applicationContext.xml
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111T314C2020.html
标题:SSM工作流程与原理详解