Spring炼气之路(炼气一层)

2024-03-17 17:04
文章标签 java spring 一层 炼气

本文主要是介绍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为配置beanApplicationContext 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>

这篇关于Spring炼气之路(炼气一层)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819582

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Java中的.close()举例详解

《Java中的.close()举例详解》.close()方法只适用于通过window.open()打开的弹出窗口,对于浏览器的主窗口,如果没有得到用户允许是不能关闭的,:本文主要介绍Java中的.... 目录当你遇到以下三种情况时,一定要记得使用 .close():用法作用举例如何判断代码中的 input

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S