AI 助理
备案 控制台
开发者社区 开发与运维 文章 正文

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

运行结果:

姿势不太差
目录
相关文章
龙大吉
|
2天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
龙大吉
13 4
众所周知
|
4天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
众所周知
37 1
阿里云云原生
|
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 应用的便利性。示例源
阿里云云原生
19 1
Dylaniou
|
4天前
|
Java 数据库连接 数据库
让星星⭐月亮告诉你,SSH框架01、Spring概述
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。它通过IoC(控制反转)和DI(依赖注入)降低组件间的耦合度,支持AOP(面向切面编程),简化事务管理和数据库操作,并能与多种第三方框架无缝集成,提供灵活的Web层支持,是开发高性能应用的理想选择。
Dylaniou
11 1
java冯坚持
|
5天前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
java冯坚持
57 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
Codelinghu
|
6天前
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
Codelinghu
16 0
阿里云开发者
|
6天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
阿里云开发者
85 0
喜欢猪猪
|
7天前
|
监控 Java 开发者
BeanPostProcessor:Spring框架的灵活扩展机制
【10月更文挑战第4天】在Spring框架中,BeanPostProcessor接口是一个非常重要的扩展点,它允许开发者在Spring容器实例化、依赖注入以及初始化Bean的过程中插入自定义逻辑。
喜欢猪猪
30 0
高端源码库
|
7天前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。
高端源码库
29 0
明弟有理想
|
7天前
|
NoSQL Java 数据库连接
springBoot:整合其他框架&condition&切换web配置 (五)
本文档介绍了如何在Spring Boot项目中整合JUnit、Redis和MyBatis等框架,并提供了相应的依赖配置示例。同时,还展示了如何通过条件注解实现Bean的条件创建,以及如何切换Web服务器配置,从默认的Tomcat切换到Jetty。
明弟有理想
19 0

热门文章

最新文章

  • 1
    Spring Boot 中文乱码问题解决方案汇总
  • 2
    Spring-boot+Dubbo应用启停源码分析
  • 3
    深入解析@SpringBootApplication注解:简化Spring Boot应用的配置
  • 4
    深入理解Spring--动手实现一个简单的SpringIOC容器
  • 5
    基于Spring3 MVC实现基于HTML form表单文件上传
  • 6
    猿创征文|Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time.
  • 7
    【Spring实战】—— 15 Spring JDBC模板使用
  • 8
    Spring IOC 容器源码分析
  • 9
    第13章 SpringBoot集成模板引擎
  • 10
    Spring Assert主张 (参议院检测工具的方法-主张)
  • 1
    Spring Boot中的@Lazy注解:概念及实战应用
    136
  • 2
    docker部署postgresql数据库和整合springboot连接数据源
    143
  • 3
    spring kafka的问题集锦
    142
  • 4
    【spring】如何解决循环依赖
    202
  • 5
    【springboot】logback配置
    72
  • 6
    Python 爬虫:Spring Boot 反爬虫的成功案例
    638
  • 7
    JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
    543
  • 8
    Spring Boot版本管理
    46
  • 9
    Spring的@Retryable实现方法重试
    65
  • 10
    Spring Boot可以同时处理多少请求?
    111
  • 相关课程

    更多
  • 全面讲解Spring Cloud Alibaba技术栈(知识精讲+项目实战)第一阶段
  • 精通Spring Cloud Alibaba
  • 微服务框架 Spring Cloud 快速入门
  • Java Web开发系列课程 - Spring框架入门
  • Spring Boot 2.5.x开发实战
  • Spring Cloud微服务架构设计与开发实战
  • 相关电子书

    更多
  • 云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧
  • 微服务架构模式与原理Spring Cloud开发实战
  • 阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
  • 相关实验场景

    更多
  • 以电商场景为例搭建AI语义搜索应用
  • 函数计算入门-HelloWorld应用开发
  • 每个IT人都想学的“Web应用上云经典架构”实战
  • 语言入门-1:环境构建
  • 前端开发基础1:前端开发环境的安装和配置
  • 高性能特性体验:ePQ 的详解与实战
  • 下一篇
    AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片

    玻璃钢生产厂家兰州公园玻璃钢雕塑哪家好商场美化美陈方案深圳大型商场美陈供应兴国玻璃钢花盆花器中山精美木纹玻璃钢花盆沈阳节日商场美陈园林玻璃钢动物雕塑制作专业的玻璃钢雕塑产品厂家岩石玻璃钢雕塑宁夏卡通玻璃钢雕塑厂商场美陈玻璃围栏延吉玻璃钢仿铜雕塑广西玻璃钢雕塑定制江宁商场装饰美陈玻璃钢吉祥物雕塑价格水富市玻璃钢雕塑哪里买贵州景区玻璃钢雕塑图片太原公园玻璃钢雕塑定做价格襄阳景区玻璃钢雕塑定做合肥特色玻璃钢雕塑价位江苏玻璃钢雕塑市场深圳玻璃钢透光雕塑加工句容卡通雕塑玻璃钢太原茂名玻璃钢动物雕塑制作玻璃钢雕塑公司价格芜湖商场主题美陈潍坊火烈鸟玻璃钢雕塑安装广西玻璃钢雕塑价格适合商场美陈插画风格军号雕塑玻璃钢公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化