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上下文对象

运行结果:

相关文章
|
20天前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
29天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
36 0
|
24天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
43 1
Spring 框架:Java 开发者的春天
|
16天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
34 2
|
15天前
|
消息中间件 NoSQL Java
springboot整合常用中间件框架案例
该项目是Spring Boot集成整合案例,涵盖多种中间件的使用示例,每个案例项目使用最小依赖,便于直接应用到自己的项目中。包括MyBatis、Redis、MongoDB、MQ、ES等的整合示例。
66 1
|
24天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
30天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
1月前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
|
24天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
61 2