当前位置: 首页 > news >正文

Spring学习1

一、Spring简介

  • Spring翻译过来就是春天的意思,其实也就是给软件行业带来了春天
  • 2002年,首次推出Spring框架的雏形,interface21框架
  • Spring框架就是以interface21框架为基础,经过重新设计,并不断丰富,在2004年3月24日发布1.0版本的Spring框架
  • Spring理念:是现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架

二、导包

        <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version></dependency>

三、Spring优点

  • Spring是一个开源的、免费的框架
  • Spring是一个轻量级、非入侵式的框架
  • 控制反转(IOC)、面向切面编程(AOP)
  • 支持事务的处理、对框架整合的支持

四、IOC理论推导

        1.UserDao接口

public interface UserDao {void getUser();
}

        2.UserDaoImpl实现类

public class UserDaoImpl implements UserDao {public void getUser() {System.out.println("获取用户信息");}
}

        3.UserService业务接口

public interface UserService {void getUser();
}

        4.UserServiceImpl业务实现类

public class UserServiceImpl implements UserService {private UserDao userDao = new UserDaoImpl();public void getUser() {userDao.getUser();}
}

在上面的代码中,如果需求发生改变,我们就会去修改原来的代码,这是很难的,在代码量十分大的时候,代价也十分高!

        5.优化上面代码 ,使用一个Set接口实现

    private UserDao userDao;//利用Set实现动态注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}

         6.两处代码的变化

  • 前面的代码,程序是主动创建对象,控制权在程序员
  • 使用了set注入后,程序不在具有主动性,而是变为了被动的接收对象

小总结:此思想,从本质上解决了问题,程序员不在去管理对象的创建了,系统的耦合性大大降低,程序员可以更加专注的在业务上的实现了! 其实这就是IOC的原型!

五、总结

Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!

相关文章:

Spring学习1

一、Spring简介 Spring翻译过来就是春天的意思&#xff0c;其实也就是给软件行业带来了春天2002年&#xff0c;首次推出Spring框架的雏形&#xff0c;interface21框架Spring框架就是以interface21框架为基础&#xff0c;经过重新设计&#xff0c;并不断丰富&#xff0c;在2004年…...

Keep再闯IPO,三年亏损16亿,会员留存率跌破70%

“运动科技第一股”来了&#xff1f; 3月28日&#xff0c;线上健身平台的运营方、北京卡路里科技有限公司&#xff08;下称“Keep”&#xff09;更新招股书&#xff0c;再次闯关港股IPO。 Keep是一家在线健身平台&#xff0c;主要产品包括在线健身内容、智能健身设备和配套运…...

软件测试分类详解

一图看清软件测试分类 一、按测试技术分&#xff08;是否查看代码&#xff09; **1. 黑盒测试**&#xff1a;软件功能是否正常使用【功能的测试】 **2. 白盒测试**&#xff1a;代码逻辑是否正确【结构的测试】 **3. 灰盒测试**&#xff1a;介于两者之间的测试&#xff0c;也…...

网站怎么优化出排名

网站怎么优化出排名&#xff0c;独立站SEO优化应该怎么做&#xff1f;#独立站#推广优化#SEO优化 今天跟大家聊一下独立站的SEO&#xff0c;是指个人或者小型的企业对独立站进行一个优化&#xff0c;以提高他在搜索引擎中的排名和流量&#xff0c;从而吸引更多的这个客户和用户。…...

h5|web页面嵌套iframe传参给cocosCreator

h5|web页面嵌套iframe传参给cocosCreator 目录 一、快速浏览 二、详细实现与项目代码 三、安全性评估——iframe 实现效果: 一、快速浏览 在h5页面中&#xff0c;使用JavaScript获取需要传递的参数&#xff0c;如下&#xff1a; var token ZHESHINIDETOKEN; var phone 11…...

阿里云安全产品Web应用防火墙是什么?有什么作用?

Web应用防火墙是一款网站Web应用安全的防护产品&#xff0c;拦截针对您网站发起的Web通用攻击&#xff08;如SQL注入、XSS跨站等&#xff09;或是应用资源消耗型攻击&#xff08;CC&#xff09;&#xff0c;同时也可以满足您网站从流量管理角度来防御业务风险&#xff0c;例如B…...

【SSM】Spring6(九.代理模式)

文章目录1.代理模式2. 静态代理3. 动态代理3.1 JDK动态代理3.2 CGLIB动态代理1.代理模式 代理模式主要有两种&#xff1a; 静态代理模式 动态代理模式 2. 静态代理 有这样一个业务&#xff1a;订单的生成&#xff0c;修改&#xff0c;查看详情。实现如下 package com.sdnu.…...

【1017. 负二进制转换】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。 注意&#xff0c; 除非字符串就是 "0"&#xff0c;否则返回的字符串中不…...

C语言实现插入排序与希尔排序

目录 一&#xff0c;插入排序 插入排序C语言实现&#xff08;升序&#xff09; 1&#xff0c;将新元素插入到有序序列 2&#xff0c;循环的开始与终止 二&#xff0c;希尔排序 希尔排序C语言实现&#xff08;升序&#xff09; 1&#xff0c;单趟&#xff1a; 2&#x…...

第九章-DOM与CSS

style属性 文档中每个元素节点都有一个属性style。style属性包含着元素样式&#xff0c;查询这个属性将返回一个对象而不是一个简单的字符串。样式都存放在这个style对象的属性里。 var element getElementById("example") //查看颜色属性 element.style.color //…...

蓝桥杯真题练习

小蓝在玩一个寻宝游戏, 游戏在一条笔直的道路上进行, 道路被分成了 nn 个方格, 依次编号 1 至 nn, 每个方格上都有一个宝物, 宝物的分值是一个整数 (包括正数、负数和零), 当进入一个方格时即获得方格中宝物的分值。小蓝可 以获得的总分值是他从方格中获得的分值之和。 小蓝开始…...

插入排序的简单理解

详细描述 插入排序的基本思想是&#xff1a;将一个记录插入到已经排好序的有序表中&#xff0c;从而得到一个新的、记录数增 1 的有序表。 在其实现过程中使用双层循环&#xff0c;外层循环针对除了第一个元素之外的所有元素&#xff0c;内层循环针对当前元素前面的有序表进行…...

Springboot框架集成Websocket通信方式

Websocket实现了“服务器”主动向“客户端”发送数据,改变了以往通过轮询、长轮训、长连接等方式获取服务器端数据的方式。 一、Websocket有三种不同的用场景,单播、广播和组播; (一)、单播(Unicast) 单播是客户端与服务器之间的“一对一”的连接。是在一个单个的发送…...

将json数据分组

在工作中有时需要根据业务需要&#xff0c;将大量数据进行处理分成几个一组 // 例如要将下方数据进行处理 var stuCount [{"id": "1612321835288","libraryCode": "D","regionCode": "A","positionCode&qu…...

从零开始实现一个C++高性能服务器框架----Socket模块

此项目是根据sylar框架实现&#xff0c;是从零开始重写sylar&#xff0c;也是对sylar丰富与完善 项目地址&#xff1a;https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍&#xff1a;实现了一个基于协程的服务器框架&#xff0c;支持多线程、多协程协同调度&am…...

ld: library not found for -lcrt0.o

ld: library not found for -lcrt0.o 背景&#xff1a; Mac 系统编译的时候报错 语言&#xff1a;golang 原因&#xff1a; 代码使用了静态编译&#xff0c;-static。stack overflow 上说 This option will not work on Mac OS X unless all libraries (including libgcc.a…...

接口测试和功能测试的区别有哪些?说一些你不知道的知识

目录 接口测试和功能测试的区别 目的 测试范围 测试方法 重要性 ​编辑 举个例子 对于接口测试 对于功能测试 ​编辑 总结 接口测试和功能测试是软件测试中的两种常见测试类型&#xff0c;主要用于评估软件系统的质量。尽管这两种测试都是为了评估软件系统的性…...

深度学习实战——不同方式的模型部署(CNN、Yolo)

忆如完整项目/代码详见github&#xff1a;https://github.com/yiru1225&#xff08;转载标明出处 勿白嫖 star for projects thanks&#xff09; 目录 系列文章目录 一、实验综述 1.实验工具及及内容 2.实验数据 3.实验目标 4.实验步骤 二、ML/DL任务综述与模型部署知识…...

【论文阅读】GNN阅读笔记

A gentle introduction on gnn 前言 发表在distill的文章 图神经网络在应用上才刚刚开始 搭建了一个GNN playground 什么是图 图是表示实体之间的关系 可以分别表示成点向量、边向量、图向量 图可以分为有向图和无向图 数据是怎么表示成图 图片表示成图&#xff1a; …...

QT常用控件——QTreeWidget(树控件),QTableWidget控件

目录 ★先开个小灶,在此插句话:【有关Halcon与Qt联编变量转换】 QTreeWidget树控件 QTableWidget控件...

白帽 SEO 与网站分析数据的关系是什么

<h3 id"seo">白帽 SEO 与网站分析数据的关系是什么</h3> <p>在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了每个网站提升流量和品牌知名度的关键因素。而在众多的SEO策略中&#xff0c;白帽SEO&#xff08;White…...

VINS-Mono跑EUROC数据集后,如何用evo工具包进行轨迹精度评估与可视化(附完整命令)

VINS-Mono轨迹精度评估实战&#xff1a;从EUROC数据集到evo工具包全流程解析 在完成VINS-Mono算法在EUROC数据集上的运行后&#xff0c;如何科学评估其轨迹精度成为算法优化和论文撰写的关键环节。本文将深入讲解使用evo工具包进行定量分析的完整流程&#xff0c;涵盖指标计算、…...

Linux等保测评实战:这些命令帮你快速搞定90%的检查项

Linux等保测评实战&#xff1a;高效命令组合与深度解析 1. 等保测评的核心挑战与Linux应对策略 每次面对等保测评&#xff0c;不少系统管理员都会感到压力山大。时间紧、任务重、检查项繁杂&#xff0c;如何在有限时间内高效完成合规检查&#xff0c;同时确保系统安全无虞&…...

IDM破解后总失效?试试这个永久激活方法+NASA数据下载避坑指南

IDM稳定激活与NASA数据高效下载全攻略 引言 在科研数据获取过程中&#xff0c;高效稳定的下载工具往往能事半功倍。许多研究者都遇到过这样的困扰&#xff1a;好不容易找到需要的数据源&#xff0c;却因为下载工具不稳定或操作不当&#xff0c;导致数据获取效率低下甚至失败。…...

LiuJuan20260223Zimage与Typora协作:智能化Markdown文档创作

LiuJuan20260223Zimage与Typora协作&#xff1a;智能化Markdown文档创作 每次打开Typora&#xff0c;看着那个简洁到极致的界面&#xff0c;我都会有种创作的冲动。但冲动归冲动&#xff0c;真到了要写一篇技术博客、整理一份项目文档&#xff0c;或者梳理一堆零散笔记的时候&…...

智能管控硬件设备:FanControl散热管理工具全攻略

智能管控硬件设备&#xff1a;FanControl散热管理工具全攻略 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanC…...

GLM-OCR在办公场景的应用:快速将合同、票据图片转为可编辑文本

GLM-OCR在办公场景的应用&#xff1a;快速将合同、票据图片转为可编辑文本 1. 引言 每天面对堆积如山的纸质合同和发票&#xff0c;财务和法务同事最头疼的是什么&#xff1f;是手动录入时眼花缭乱的数字&#xff0c;还是反复核对时的精神紧绷&#xff1f;我曾见过一位财务专…...

华为无线网络配置实战:从零搭建企业级Wi-Fi环境

1. 企业级Wi-Fi环境搭建前的准备 第一次接触华为无线网络设备时&#xff0c;我被那一堆专业术语搞得头晕眼花。AC控制器、AP接入点、核心交换机...这些设备到底该怎么连接&#xff1f;经过多次实战&#xff0c;我发现只要掌握几个关键点&#xff0c;搭建企业Wi-Fi其实没那么复杂…...

Qwen3-VL-8B场景应用:电商商品图自动描述生成,节省运营时间

Qwen3-VL-8B场景应用&#xff1a;电商商品图自动描述生成&#xff0c;节省运营时间 1. 电商运营的痛点与解决方案 在电商行业&#xff0c;商品详情页的描述文案直接影响转化率。传统模式下&#xff0c;运营人员需要手动为每张商品图撰写描述&#xff0c;这个过程耗时耗力且难…...

如何快速掌握Claude技能:面向初学者的完整指南与实用工具集

如何快速掌握Claude技能&#xff1a;面向初学者的完整指南与实用工具集 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/aw…...