目录
一、ssm是什么?
答:ssm是指java程序开发的框架,是目前比较主流的Java EE企业级框架
s:spring
s:spring mvc
m:mybatis
本篇文章主要讲的就是spring的内容
二、Spring
1.Spring的诞生和发展
早期的J2EE(Java EE平台)推崇以EJB为核心的开发方式,但是这种开发方式有很多的弊端。例如代码臃肿、使用复杂、代码侵入性强、开发周期长、移植难度大
spring是Java EE编程领域的一款轻量级的框架,由Rod Johnson与2002年提出并创立,它的目标就是要简化Java企业级应用程序的开发难度和周期。 spring含义为就像一缕春风,扫平传统的J2EE的寒冬。
2.Spring版本介绍
2003年2月:spring0.9版本发布,它采用了Apache2.0开源协议
2004年4月:spring1.0版本发布
到目前为止。最新的版本已经到了6.0的版本了,那么对JDK的最低要求也要为JDK17
3.Spring框架的作用简介
(1)spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架
面向切面(AOP):不修改源代码进行增强
(2)spring最初的出现是为了解决EJB臃肿的设计以及难以测试等等的问题
(3)spring为简化开发而生,让程序员只需关注核心业务的实现,尽可能的不再去关注非逻辑业务代码(事务控制、安全日志等等)
4.spring的八大模块
(1)Spring Core模块
Core翻译:核心
这是spring框架最基础的核心部分,它提供了依赖注入(DI)特征来实现容器对Bean的管理。核心容器的主要组件是BeanFactory。
BeanFactory:是工厂模式的一个实现,是任何spring应用的核心。它使用IOC讲应用配置和依赖从实际的应用代码种分离出来。
(2)Sping AOP模块
提供面向切面的编程,也称为次核心部分,不用依赖组件,就可以将声明性事务管理集成到应用程序中。可自定义拦截器、切点、日志等
(3)spring contex模块
context翻译:环境、上下文
如果说BeanFactory使spring成为容器。那么这个上下文模块就是使spring成为框架的原因。
构建于core封装包基础上的context封装包,提供了一种框架式的对象的访问方法
这个模块扩展了BeanFactory,增加了对国际化(I18N)消息、事件传播、验证的支持。另外提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务
(4)spring web模块
建立在上下文模块之上,为基于web的应用程序提供了上下文。提供针对web开发的集成特性,比如文件的上传。
(5)spring web mvc模块
spring自己提供了一套mvc框架。spring中的mvc封装包提供了web应用中的model-view-Controller(MVC)的实现,通过使用@Controller注解就可以实现url与方法的映射。
(6) spring dao模块
提供了单独的支持JDBC操作的API。 提供了JDBC的抽象层和异常层次结构,用于简化JDBC。消除了繁琐的JDBC编码和数据库厂商特有的错误代码解析
(7)spring ORM模块
支持常见的ORM框架。mybatis,Hibernate、JDO
(8)spring webflux模块
这个模块是在5.0版本的后期添加的。spring提供的响应式web框架。它是完全非阻塞的
5.spring框架的特点
(1)轻量级
从大小和开销方面都是轻量级的。完整的spring框架可以在一个大小只有1M左右的jar文件中发布。并且spring所需的处理开销也是微不足道的。
spring是非侵入式的:spring应用中的对象不依赖于spring的特定类
(2)方便解耦,简化开发
spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给spring管理。通过控制反转(IOC)的技术来实现解耦。大大降低了代码量
(3)面向切面(AOP)编程的支持
spring提供面向切面编程,可以方便地实现对程序进行拦截和运行监控等功能
(4)降低Java EE API的使用难度
spring对Java EE中一些API(JDBC、JavaMail、远程调用)都提供了封装,使用这些API应用的难度大大降低。
(5)方便集成各种优秀的框架
spring不排斥各种优秀的框架,其内部提供了对各种优秀框架的直接支持(Struts2、Hibernate、mybatis)
(5)声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
(6)方便程序的测试
spring支持Junit4,可以通过注解方便地测试spring程序
三、搭建spring程序步骤
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/112608.html