【Spring】Spring框架的概念,以及Spring框架的简单使用。
创始人
2024-11-15 18:33:07
0

目录

1. 概念

2. Spring的体系结构介绍(了解)

 3. Spring框架的使用

3.1 环境准备

3.2 代码编写


1. 概念

总的来说就是一句话,Spring框架是一个轻量级的控制反转(IoC)和面向切面(AOP)编程的容器框架,具有简单性、可测试性和松耦合性等特点。

 Servlet的缺点

  1. 代码组织混乱和复杂:Servlet需要手动处理请求和响应,并且⼀个访问地址对应⼀个 Servlet 类,增加了代码量。
  2. 耦合度高:没有框架提供的依赖注入等功能,对象之间往往有较高的耦合度。
  3. 线程安全问题:Servlet是单线程的,如果在Servlet中声明了全局性的数据,可能会存在线程安全问题。
  4. 异常处理复杂:在Servlet中处理异常需要手动进行try…catch操作,增加了代码的复杂性和出错的可能性,等等。

 Spring相比于servlet的优点

  1. 依赖注入 (DI):Spring支持依赖注入,这使得对象的依赖关系可以在运行时动态地注入,而不是在代码中硬编码,这样增加了系统的灵活性和可测试性。
  2. 面向切面编程 (AOP):Spring支持AOP,可以将横切关注点(如日志记录、事务管理)从业务逻辑中分离出来,提高代码的可读性和可维护性。
  3. MVC框架:Spring MVC是Spring的一部分,提供了一个清晰的模型-视图-控制器架构,使Web应用程序的开发更加结构化。
  4. 事务管理:Spring提供了声明式事务管理,使得事务控制变得更加简单。
  5. 异常处理:Spring提供了统一的异常处理机制,使得错误处理更为一致和高效
  6. 易于扩展和定制:Spring MVC借助Spring Framework强大的DI(依赖注入)和AOP(面向切面编程)特性,更容易进行扩展和定制。开发人员可以轻松地添加新的拦截器、过滤器等功能。而在Servlet中,需要手动开发这些功能,增加了开发难度和工作量。

2. Spring的体系结构介绍(了解)

  • Spring Core :Spring框架最基础的部分,它提供了依赖注入(DI )特征来实现容器对Bean的管理。最基本的概念是BeanFactory,它是任何 Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从 实际的应用代码中分离出来。
  • Spring Context :核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为 一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及 验证的支持。
  • pring AOP :Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在 Spring应用中实现切面编程的基础。
  • Spring DAO: 使用JDBC经常要写大量的重复代码,取得连接、创建语句、处理结果集,然后关闭 连接。Spring的JDBC和DAO模块抽取了这些重复代码,保持了数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。
  • Spring Web:Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下 文。另外,这个模块还提供了一些面向服务支持。
  • Spring MVC: Spring为构建Web应用提供了一个功能全面的MVC框架。可以很容易 地与其它MVC框架集成,并且使用IoC对控制逻辑和业务对象提供 了完全的分离。
  • Spring ORM: 对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的人,Spring提供了 ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方 案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一 个也包括JDBC。

 3. Spring框架的使用

3.1 环境准备

1.首先创建spring.xml核心配置文件 ,引入相关的依赖

               <--         该配置文件的作用就是生成实体,管理实体,为其他类提供实体。         -->                        

2.在pom.xml中引入相关依赖

            org.springframework       spring-beans       5.3.26                       org.springframework       spring-core       5.3.26                      org.springframework       spring-context       5.3.26                      org.springframework       spring-test       5.3.26       test     

3.2 代码编写

1.创建books类

import lombok.Data; import lombok.NoArgsConstructor;  import java.time.LocalDate;  @Data @AllArgsConstructor @NoArgsConstructor public class Books {    private Integer bookId;   private String title;   private String author;   private LocalDate publicationDate;   private String isbn;   private String genre;  } 

2.移交books对象的控制权,将Books对象的创建权利移交给Spring去管理。

                                                  

3.创建测试类运行Spring

package com.its;  import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;  public class SpringTest {     public static void main(String[] args) {         ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");         Object books = context.getBean("books");         System.out.println(books);     } } 

运行结果如下,拿到了spring容器中创建的Books类型的的bean实体。

相关内容

热门资讯

曝光一下!决战卡五星辅助,威信... 曝光一下!决战卡五星辅助,威信茶馆app插件,原来有挂(哔哩哔哩)1、威信茶馆app插件免费辅助多个...
分享一下!微信微乐小程序修改器... 分享一下!微信微乐小程序修改器,永胜联盟会封号吗,真是真的有挂(哔哩哔哩)1、许多玩家不知道微信微乐...
辅助一下!微乐小程序辅助脚本,... 辅助一下!微乐小程序辅助脚本,闲逸免费app辅助,切实真的是有挂(哔哩哔哩);该软件可以轻松地帮助玩...
教你一下!芒果辅助器安卓版,海... 教你一下!芒果辅助器安卓版,海盗来了辅助脚本,原来有挂(哔哩哔哩)1、玩家可以在芒果辅助器安卓版线上...
解谜一下!拱趴大菠萝运势,天天... 解谜一下!拱趴大菠萝运势,天天微友有辅助吗,本来真的是有挂(哔哩哔哩)天天微友有辅助吗透视方法中分为...
解谜一下!边锋干瞪眼ios辅助... 解谜一下!边锋干瞪眼ios辅助,皇豪互众控制系统,其实是有挂(哔哩哔哩)1、该软件可以轻松地帮助玩家...
曝光一下!欢乐茶馆挂,大菠萝辅... 曝光一下!欢乐茶馆挂,大菠萝辅助器,好像是有挂(哔哩哔哩)1、大菠萝辅助器公共底牌简单,大菠萝辅助器...
必备一下!四川游戏家园破解版,... 必备一下!四川游戏家园破解版,微乐家乡麻辣自建房辅助app,原来有挂(哔哩哔哩)1、完成微乐家乡麻辣...
总结一下!可乐辅助,威信茶馆解... 总结一下!可乐辅助,威信茶馆解码器,一贯真的是有挂(哔哩哔哩)该软件可以轻松地帮助玩家将威信茶馆解码...
详细一下!透视辅助工具,兴动休... 详细一下!透视辅助工具,兴动休闲辅助,一贯是真的有挂(哔哩哔哩)1、完成透视辅助工具辅助器v3.3的...