Spring炼气之路(炼气一层)

目录

一、IOC

1.1 控制反转是什么? 

1.2 什么是IOC容器?

1.3 IOC容器的作用

1.4 IOC容器存放的是什么?

二、DI

2.1 依赖注入是什么?

2.2 依赖注入的作用

三、IOC案例实现

3.1下载Maven

 3.2 配置Maven中的settings.xml文件

3.2.1 配置本地库

3.2.2 配置中央仓库

3.2.3 配置JDK版本

3.3 配置Maven的环境变量

        3.3.1 打开环境变量

        3.3.2 配置系统变量

       3.3.3 配置path中的环境变量     

3.4 验证Maven安装和配置是否成功    ·   

3.5创建maven项目 

3.6 添加Spring的依赖jar包

3.7 完成IOC容器中bean的配置

3.8获取IOC容器 ,调用方法

四、DI案例实现

4.1配置bean的依赖关系


 

                         前言:初识Spring-CSDN博客

一、IOC

                IOC(Inversion of Control)控制反转

1.1 控制反转是什么? 

                使用对象时,由主动new产生对象转换为由外部提供对象,在这个过程中,对象创建控制权由程序转移到外部

1.2 什么是IOC容器?

                Spring创建了一个容器用来存放所创建的对象,这个容器就叫做IOC容器

1.3 IOC容器的作用

                对象管理:IOC容器负责管理组件的生命周期,包括创建、配置和销毁等过程

                控制反转:IOC容器通过将对象的创建和依赖关系的管理责任交给第三方容器,实现了控制反转的思想,降低了程序的耦合度,提高了程序的扩展性

1.4 IOC容器存放的是什么?

                被创建和管理的对象在IOC容器中统称为Bean,IOC容器存放的就是一个个Bean对象

二、DI

                DI(Dependency Injection)依赖注入

2.1 依赖注入是什么?

                在容器中建立Bean与Bean之间的依赖关系的整个过程,被称为依赖注入

2.2 依赖注入的作用

                充分解耦:依赖注入是IOC的一种具体实现方式,它通过配置文件将对象依赖的属性注入到对象中,从而解耦对象之间的依赖关系。

三、IOC案例实现

3.1下载Maven

网址:Maven – Download Apache Maven

 注意:IDEA版本和Maven版本可能出现不兼容问题,下载兼容版本即可(可以参照下表)

IDEAMaven
IDEA 2018兼容Maven 3.6.1及之前所有版本
IDEA 2020兼容Maven 3.6.3及之前所有版本
IDEA 2021兼容Maven 3.8.1及之前的所有版本
IDEA 2022兼容Maven 3.8.1及之前的所有版本

下载其他版本方法

 3.2 配置Maven中的settings.xml文件

3.2.1 配置本地库

              原因:Maven初始化后,在C盘会出现.m2文件,就是存放下载下来的jar包的。后面下载的文件过多,会导致C盘空间不足。建议在其他盘符新建一个文件夹

        代码:

  <localRepository>D:\Maven\repository</localRepository>

3.2.2 配置中央仓库

              原因:因为我们使用的jar包不存在时,会从中央仓库来下载。但是因为是在外网,所以下载速度可能很慢。因此我们要配置镜像源 ,使用阿里云镜像源

               setting.xml文件位置:

               代码:直接复制即可

  <mirror>
	<id>alimaven</id>
	<mirrorOf>central</mirrorOf>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

3.2.3 配置JDK版本

                原因:以后创建项目时,可以直接默认你配置的JDK

   代码:

<profile>
	<id>jdk1.8</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
</profile>

3.3 配置Maven的环境变量

        3.3.1 打开环境变量

        

        3.3.2 配置系统变量

       3.3.3 配置path中的环境变量     

    3.4 验证Maven安装和配置是否成功    ·   

        方式:   win+R 输入 cmd 回车 在命令提示符中输出 mvn 

      

查看Maven版本 : win+R 输入 cmd 回车 在命令提示符中输出 mvn  -version

3.5创建maven项目 

                新建项目,选择Maven,一步步操作即可。

项目结构:

3.6 添加Spring的依赖jar包

        在pom.xml输入:

   <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

3.7 完成IOC容器中bean的配置

1.新建配置文件 文件名:applicationContext.xml

2.代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--  1.  导入Spring的坐标spring-context-->

    <!-- 2.   配置bean-->
    <bean id="bookDao" class = "com.zhang.dao.impl.BookDaoImpl"/>
    <bean id="bookService" class="com.zhang.service.impl.BookServiceImpl"/>

</beans>

3.8获取IOC容器 ,调用方法

  public static void main(String[] args) {
        //获取IOC容器 applicationContext.xml为配置bean
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取bean id = "bookDao"
        BookDao bookDao = (BookDao) ac.getBean("bookDao");

        bookDao.sava();//book dao sava

        //获取bean id= “bookService”
        BookService bookService = (BookService) ac.getBean("bookService");

        bookService.sava();//book service sava
                          // book dao sava
    }

四、DI案例实现

4.1配置bean的依赖关系

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
    <!--  1.  导入Spring的坐标spring-context-->

    <!-- 2.   配置bean-->
    <bean id="bookDao" class = "com.zhang.dao.impl.BookDaoImpl"/>
    <bean id="bookService" class="com.zhang.service.impl.BookServiceImpl">
<!--            配置Dao和Service的关系-->
<!--        name表示具体配置的属性-->
<!--        ref 是参照那个属性-->
        <property name="bookDao" ref="bookDao"/>
    </bean>
</beans>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463749.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

考研C语言复习进阶(2)

目录 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 4. 函数指针 5. 函数指针数组 6. 指向函数指针数组的指针 7. 回调函数 8.三步辗转法 9. 指针和数组笔试题解析 10. 指针笔试题 指针的主题&#xff0c;我们在初级阶段的《指…

​​SQLiteC/C++接口详细介绍之sqlite3类(十一)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十&#xff09; 下一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十二&#xff09;&#xff08;未发表&#xff09; 33.sq…

JavaWeb07-会话

目录 一、会话跟踪技术 1.概述 2.实现方式 3.Cookie &#xff08;1&#xff09;基本使用 &#xff08;2&#xff09;原理 &#xff08;3&#xff09;存活时间 &#xff08;4&#xff09;存储中文 4.Session &#xff08;1&#xff09;基本使用 &#xff08;2&#x…

C#,图论与图算法,寻找图(Graph)中的桥(Bridge)算法与源代码

1 图(Graph)中的桥(Bridge) 如果删除无向连通图中的边会断开该图的连接,则该边就是桥。对于断开连接的无向图,定义类似,桥接是一种边移除,它增加了断开连接的组件的数量。 与连接点一样,网桥代表连接网络中的漏洞,对于设计可靠的网络非常有用。例如,在有线计算机网…

哪些视频编辑软件最好用?会声会影怎么样?2024会声会影激活

随着数字化时代的到来&#xff0c;视频编辑软件的需求量也逐渐增加。为了满足用户的需求&#xff0c;市面上涌现了很多的视频编辑软件&#xff0c;让用户不知道该如何选择。今天我们来聊聊哪些视频编辑软件最好用&#xff0c;以及会声会影怎么样&#xff1f; 视频编辑软件的选…

分布式事务基础理论解析

一、概述 1.1 定义 为了解决java 多个节点之间数据一致性问题。产生的核心原因是&#xff1a;资源存储的分布性。比如多个数据库&#xff0c;或者Mysql和Redis的数据一致性等。 1.2 产生场景 跨JVM进程产生分布式事务。即服务A和服务B分别有对应的数据库跨数据库实例产生分…

Qt QTableWidget 实现行选中及行悬浮高亮

表格整行的 selected、hover 高亮需求很常见&#xff0c;但使用 Qt 提供的开箱即用的方法根本无法实现这个需求&#xff08;至少在当前的时间节点是不行的&#xff09;&#xff1b;想要实现这个效果必须要费一点点力气&#xff0c;我们尽量选择较为简单的方法。 话不多说&…

yolo项目中如何训练自己的数据集

1.收集自己需要标注的图片 2.打开网站在线标注网站 2.1 点击右下角Get Start 2.2点击这里上传自己的图片 上传成功后有英文的显示 点击左边的Object Detection&#xff0c;表示用于目标检测 2.3选择新建标签还是从本地加载标签 如果是本地加载标签&#xff08;左边&#…

Linux/Ubuntu/Debian从控制台启动程序隐藏终端窗口

如果你想从终端运行应用程序但隐藏终端窗口. 你可以这样做&#xff1a; 在后台运行&#xff1a; 你只需在命令末尾添加一个与号 (&) 即可在后台运行它。 例如&#xff1a; your_command &将 your_command 替换为你要运行的命令。 这将在后台启动该命令&#xff0c…

科研绘图二:箱线图(抖动散点)

R语言绘图系列—箱线图抖动散点 &#xff08;二&#xff09;: 科研绘图一&#xff1a;箱线图&#xff08;抖动散点&#xff09; 文章目录 R语言绘图系列---箱线图抖动散点&#xff08;二&#xff09;: 科研绘图一&#xff1a;箱线图&#xff08;抖动散点&#xff09; 前言一、…

中兴交换机与H3C交换机配置链路聚合802.3ad

难得见到一回中兴交换机 中兴交换机型号&#xff1a; ZX8902 这台中兴要与H3C交换机建立port-channel&#xff0c; 接口为access vlan 100 拓扑如下&#xff1a; 1 中兴交换机配置 1.1 创建 smart group&#xff0c;对&#xff0c;没有看错&#xff0c;中兴的port-channel叫…

【李沐论文精读】多模态论文串讲(上)和(下)精读

参考&#xff1a;多模态论文串讲上、多模态论文串讲下、多模态论文串讲 论文链接放在每一小节前面。 Review&#xff1a; ViLT论文的研究动机其实就是为了把目标检测从视觉端拿掉。图文多模态任务&#xff0c;关键是提取视觉特征和文本特征&#xff0c;然后对齐。在之前的多模态…

LeetCode 7 / 100

哈希表、双指针 哈希表两数之和字母异位词分组最长连续序列 双指针移动零盛最多水的容器三数之和接雨水 LeetCode 1.两数之和 LeetCode 49. 字母异位词分组 LeetCode 128. 最长连续序列 LeetCode [283. 移动零](https://leetcode.cn/problems/move-zeroes/?envTypestudy-plan-…

Python基础(八)之流程控制

Python基础&#xff08;八&#xff09;之流程控制 Python控制流程分为三种接口&#xff1a; 顺序结构选择结构循环结构 1、顺序结构 程序代码自上而下运行&#xff0c;逐条执行每一条Python代码&#xff0c;不重复执行任何代码&#xff0c;也不会跳过任何代码。 当语句与语…

第七篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读数据分析数据挖掘的几个重要算法为代表的核心技术

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、重要算法介绍二、回归分析示例代码三、聚类分析示例代码四、决策树示例代码五、关联规则挖掘示例代码六、神经网络示例代码七、支持向量机示例代码八、聚类分析示例代码九、主成分分析示…

【Hadoop大数据技术】——MapReduce经典案例实战(倒排索引、数据去重、TopN)

&#x1f4d6; 前言&#xff1a;MapReduce是一种分布式并行编程模型&#xff0c;是Hadoop核心子项目之一。实验前需确保搭建好Hadoop 3.3.5环境、安装好Eclipse IDE &#x1f50e; 【Hadoop大数据技术】——Hadoop概述与搭建环境&#xff08;学习笔记&#xff09; 目录 &#…

【集成开发环境】-VS Code:C/C++ 环境配置

简介 VS Code&#xff0c;全称Visual Studio Code&#xff0c;是一款由微软开发的跨平台源代码编辑器。它支持Windows、Linux和macOS等操作系统&#xff0c;并且具有轻量级、高效、可扩展等特点&#xff0c;深受广大开发者的喜爱。 VS Code拥有丰富的功能特性&#xff0c;包括…

Python算法100例-4.1 将真分数分解为埃及分数

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.补充知识点5.确定程序框架6.完整的程序 1&#xff0e;问题描述 现输入一个真分数&#xff0c;请将该分数分解为埃及分数。 2&#xff0e;问题分析 真分数&#xff08;a proper…

vulture,一个有趣的 Python 死代码清除库!

目录 前言 什么是 Python Vulture 库&#xff1f; 核心功能 使用方法 1. 安装 Vulture 库 2. 使用 Vulture 命令行工具 3. 定制规则 实际应用场景 1. 代码库维护 2. 项目迁移和重构 3. 优化性能 4. 代码审查和质量检查 总结 前言 大家好&#xff0c;今天为大家分享一个好…

ideaSSM社区二手交易平台C2C模式开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea ssm 社区二手交易平台系统是一套完善的完整信息管理系统&#xff0c;结合SSM框架完成本系统SpringMVC spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码…