spring框架核心技术讲解(上)--超详细教程加案例分析

简介: spring框架核心技术讲解(上)--超详细教程加案例分析

一.spring简介

       1.1 含义:

       Spring是一个免费开源的Java开发框架,用于构建企业级应用程序。它提供了一套全面的解决方案,包括依赖注入、面向切面编程、事务管理、数据访问、Web开发等功能,使得开发人员可以更加高效地开发Java应用程序。简单说,Spring就是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

       1.2 优点

       spring ==>"春天",意味着javaIT迎来了 “春天” ,
       spring无处不在,自从这个框架推出以来,就一直被程序员们喜爱,受欢迎,很多项目中广     泛运用,Spring还拥有科技界所有知名人士的贡献,包括阿里巴巴,亚马逊,谷歌,Microsoft等
       spring是安全的,在快速,负责任地处理安全问题方面有着良好的记录。

       1.3 官方网站

二.spring 控制反转IOC(依赖注入)的特点

       2.1 控制反转是什么

       控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。 IoC还有一个另外的名字:“依赖注入 (DI=Dependency Injection)” ,即由容器动态的将某种依赖关系注入到组件之中 ,就是将以前由程序员实例化对象/赋值的工作交给了spring处理

       2.2 案例(讲解控制反转)

       首先,我们要知道控制反转解决了我们哪些问题??
       也就是程序员手动实例化对象的弊端-----就是当依赖的接口的实现需要大批量改动,迭代,           么维护的成本就会非常高,而当接口的实现类不统一的时候维护成本更高

       场景演练:客户需求,更改个人信息 ,但是现在需要在这个基础之上做迭代 可以上传头像,并且提高性能

正常来说,我们都会在直接在后面添加新的功能,对不对,可是同学们,可是如果客户说“有些地方需要上传头像功能,有些地方不需要上传头像功能呢”

之前,我们就会建立两个类,一个类有上传头像功能,一个没有,到时候在后台调用的时候,调用不同的类就行,可是如果客户又要改动说这些要这些功能哪些不要,那是不是我们都要一个一个去改呢,但是spring出现之后,这些问题就可以避免掉

现在就用IoC来运用一下,将实例化对象的这一步交给spring来帮助我们完成。做一个对比

首先,我们要先建一个spring的配置文件

接下来我们将UserService看作一个属性,给它提高set,get方法

然后编辑xml.文件,凡是在spring配置文件中配置,那么该类JavaBean就交给了spring容器管理
我们在里面像下面,web层和Impl层,写出路径,并且给它命一个ID 将impl注入该类中,那么该类就用了impl中的方法

最后我们进行前台测试

测试结果;可以看到在spring配置文件中,我给UserAction,和GoodsAction注入的是不同Impl
所以调的方法就是不一样的,这样就完美解决了程序员实例化对象的弊端

三.spring的注入方式

  1. set方法属性注入
  2. 构造注入
  3. 接口注入:也是自动装配
       上面演示控制反转就是set方法属性注入,毕竟我们都把那个UserAction类看作了一个属性,并且提供了set,get的方法,是吧

3.1 set方法属性注入

       上面注入的是接口,它也可以注入属性具体的值
       先创建属性,提供get,set方法,写一个方法调用这些属性

        然后再配置文件中,注入这些属性

        在前台调用

3.2 构造注入

      先定义属性,其次提供有参,无参构造方法,一样提供获取属性的方法

        最后再前台输入

3.3 接口注入(自动装配)===用的最多,最方便

       有两种方式:byName 和byType

       byName:javabean会根据属性名在spring配置文件上下文中根据spring上下文中的bean ID进行查找,只要有就会自动注入

      byType:javabean会根据属性名对应的接口类型在spring配置文件上下文中根据spring上下文是否有该接口类型的实现类进行注入,如果找到两个及以上,那么spring配置文件会包错

四.spring与web容器的整合

       我们每一个请求如果都要拿到UserActiob都需要建模一次的话,非常消耗性能,希望只建模一次,然后每一个请求都可以获取到spring上下文,那么就有监听器可以做到,将spring放入tomcat上下文
创建一个监听器将spring放入tomcat上下文

当用户请求的时候,获取spring上下文对象

运行结果:

相关文章
|
1月前
|
前端开发 Java 数据库连接
Spring框架初识
Spring 是一个分层的轻量级开源框架,核心功能包括控制反转(IOC)和面向切面编程(AOP)。主要模块有核心容器、Spring 上下文、AOP、DAO、ORM、Web 模块和 MVC 框架。它通过 IOC 将配置与代码分离,简化开发;AOP 提供了声明性事务管理等增强功能。
87 21
Spring框架初识
|
11天前
|
前端开发 Java 数据库连接
Spring MVC 扩展和SSM框架整合
通过以上步骤,我们可以将Spring MVC扩展并整合到SSM框架中。这个过程包括配置Spring MVC和Spring的核心配置文件,创建控制器、服务层和MyBatis的Mapper接口及映射文件。在实际开发中,可以根据具体业务需求进行进一步的扩展和优化,以构建更加灵活和高效的企业级应用程序。
24 5
|
1月前
|
人工智能 Cloud Native 安全
DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集
诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友,DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集中。
133 16
|
25天前
|
存储 人工智能 开发框架
Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手
第二届开放原子大赛 Spring AI Alibaba 应用框架挑战赛决赛于 2 月 23 日在北京圆满落幕。
|
2月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
148 29
|
1月前
|
XML Java 开发者
通过springboot框架创建对象(一)
在Spring Boot中,对象创建依赖于Spring框架的核心特性——控制反转(IoC)和依赖注入(DI)。IoC将对象的创建和管理交由Spring应用上下文负责,开发者只需定义依赖关系。DI通过构造函数、setter方法或字段注入实现依赖对象的传递。Spring Boot的自动配置机制基于类路径和配置文件,自动为应用程序配置Spring容器,简化开发过程。Bean的生命周期包括定义扫描、实例化、依赖注入、初始化和销毁回调,均由Spring容器管理。这些特性提高了开发效率并简化了代码维护。
|
17天前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
2月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
3月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
2月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
122 7