Spring环境搭建、SpringIOC容器基础、SpringDI基础

这篇具有很好参考价值的文章主要介绍了Spring环境搭建、SpringIOC容器基础、SpringDI基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring环境搭建、SpringIOC容器基础、SpringDI基础

一、SpringIOC核心思想

  • IOC控制反转
  • DI依赖注入

作用:将所有JavaBean注入Spring容器中,进行==”解耦“==管理,在Spring中,万物皆为JavaBean

二、搭建Spring环境步骤

  1. 使用maven,在pom.xml文件中添加Spring坐标,即添加Spring依赖
  2. 在resource文件中新建配置文件,即Spring框架的主配置文件
  3. Spring的主配置文件就相当于 SpringIOC 容器 ,其中管理这所有的 JavaBean

三、SpringIOC容器使用步骤

  1. 创建 JavaBean ,即类或其他数据
  2. 将类注入SpringIOC容器,即将创建的 JavaBean 设置到IOC容器中
// 配置语法:<bean id="唯一标识" class="类的完全限定名称,就是需要将哪个类加到IOC容器中"></bean>

3、加载 Spring 主配置文件(SpringIOC容器)获取核心对象

 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
 ApplicationContext applicationContext = new FileSystemXmlApplicationContext()
 ApplicationContext applicationContext = new AnnotationConfigApplicationContext()

说明:

关键字:
BeanFactory(父接口)

ApplicationContext(子接口)

  • ClassPathXmlApplicationContext == 通过文件的相对路径获取核心对象(实现类)
  • FileSystemXmlApplicationContext == 通过文件的绝对路径获取核心对象(实现类)
  • AnnotationConfigApplicationContext == 通过加载配置类获取核心对象(实现类)

4、让 Spring 以解耦的方式实例化对象并返回用户

四、SpringIOC 总结

  • 使用 SpringIOC 的主要思想就是为了解耦合,就是管理项目组件之间的耦合关系
  • IOC 的含义就是控制反转,即将创建对象的控制权转移给 Spring框架进行管理,反转的含义就是,原本创建对象的权利应该是属于具体的类,而现在创建对象的权利交给了IOC容器

五、SpringDI(依赖注入)

1、基本概念

根本目的也是为了解耦合

就是通过依赖注入,将传递的值或对象,通过 SpringDI 注入到指定位置

2、实现方式

先思考需要使用哪种注入方式更加合适

(1)set 注入

通过 set 方法维护对象之间的依赖关系

在 bean 标签内部开始配置

  1. 配置位置:此位置

  2. 配置语法:使用****标签

  3. 配置属性:

    • name -------->属性名称 (set 方法中对应的参数名称)

    • value -------->属性值

    • ref -------->属性值的引用(也就是需要关联的哪个对象

<bean id="student" class="com.apesource.pojo.Student">
        <property name="stuname" value="111"></property>
        <property name="stuage" value="12"></property>
        <property name="stuhobby" value="money"></property>
</bean>
(2)构造注入

通过构造方法维护对象之间的依赖关系

  1. 配置位置:此位置

  2. 配置语法:<constructor-arg 属性名=“属性值”>

  3. 配置属性:

    • name-------->构造方法参数名称

    • index-------->构造方法参数下标

    • type-------->构造方法参数类型

    • value-------->属性值

    • ref-------->属性值的引用(也就是需要关联的哪个对象

<bean id="student" class="com.apesource.pojo.Student">
        <constructor-arg name="name" value="111"></constructor-arg>
        <constructor-arg name="age" value="21"></constructor-arg>
</bean>
(3)属性注入

(不推荐使用)文章来源地址https://www.toymoban.com/news/detail-662911.html

3、允许注入的数据类型

  • 注入对象
  • 注入基本数据类型以及String
  • 注入复杂类型List Set array Map propertoes

4、注入的实现方式

  • 下面用set注入演示复杂类型的注入
<!--  =============================注入复杂类型=====================================  -->
<bean id="teacher" class="com.apesource.pojo.Teacher">
        <property name="mylist">
            <list>
                <value>11</value>
                <value>22</value>
                <value>33</value>
            </list>
        </property>

        <property name="myset">
            <set>
                <value>444</value>
                <value>555</value>
                <value>666</value>
            </set>
        </property>

        <property name="mymap">
            <map>
                <entry key="花和尚" value="鲁智深"></entry>
                <entry key="豹子头" value="林冲"></entry>
                <entry key="两年半" value="蔡徐坤"></entry>
                <entry key="玉麒麟" value="卢俊义"></entry>
                <entry key="及时雨" value="宋江"></entry>
            </map>
        </property>

        <property name="myarray">
            <array>
                <value>777</value>
                <value>888</value>
                <value>999</value>
            </array>
        </property>

        <property name="prop">
            <props>
                <prop key="1+1">2</prop>
                <prop key="2+2">4</prop>
                <prop key="4+4">8</prop>
            </props>
        </property>
    </bean>

到了这里,关于Spring环境搭建、SpringIOC容器基础、SpringDI基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

    什么是BeanFactory? BeanFactory 是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。 ListableBeanFactory 、 ConfigurableBeanFactory 提供了IOC容器获取所有Bean、配置Bean的额外能力。所有 BeanFactory 的实现类持有所有Bean的定义 BeanDefinition ,用一个唯一的字符串(即Bean的名字)区分。 Bean

    2024年02月20日
    浏览(26)
  • Spring源码笔记之SpringIOC--(2)从BeanDefinition到Bean实例

    从BeanDefinition到Bean实例 对比 SimpleBeanDefinitionRegistry 和 DefaultListableBeanFactory 的源码,中间省略一些无关紧要的逻辑: SimpleBeanDefinitionRegistry.java DefaultListableBeanFactory.java 从类关系上来看 DefaultListableBeanFactory 不单单实现了 BeanDefinitionRegistry ,还实现了 BeanFactory (继承了 AbstractA

    2024年02月19日
    浏览(25)
  • Docker 基础实战:环境搭建、容器、仓库、镜像

    可以使用 docker help 或者 man docker-run 来获取完整的 Docker 命令列表,本文只介绍一些常用的命令与参数。 考虑到安装流程过于繁琐,在 CentOS 中,可以使用官方提供的脚本来快速安装 Docker: 可以从 https://get.docker.com/ 查看支持的操作系统。 当安装完毕后,设置开机自启动 Doc

    2024年02月16日
    浏览(36)
  • Spring环境搭建+入门(Idea版)

    在本文中用到了以下环境: 工具:IntelliJ IDEA 2023.1 Maven版本:apache-maven-3.6.3 jdk版本:jdk17 1,打开Idea后,选择 New Project 创建一个新项目 2,选择Spring Initializer模板去自动创建Spring项目项目名字任意,注意jdk要选择17,我们这边使用的Spring3的版本,最低支持jdk17。然后点击next。

    2024年02月06日
    浏览(27)
  • 【Spring入门 】1.环境搭建并运行第一个Spring程序(Maven依赖)

    ✅作者简介:正在学习java全栈,有兴趣的可以关注我一起学习 📃个人主页: ConderX(摸鱼)的主页 🔥系列专栏: Spring专栏 💖如果觉得博主的文章还不错的话,请👍三连支持一下博主哦🤞 我也是刚开始接触Spring,有兴趣的同学可以和我一起零基础(当然要会Java基础和XML文档)慢

    2024年02月07日
    浏览(36)
  • 理解SpringIOC和DI第一课(Spring的特点),IOC对应五大注解,ApplicationContext vs BeanFactory

    对象这个词在Spring范围内,称为bean Spring两大核心思想 1.IOC     (IOC是控制反转,意思是 控制权反转-控制权(正常是谁用这个对象,谁去创建,)-控制对象的控制权,反转的意思是创建对象的控制权,交给了Spring) 优点:解耦合 高内聚:一个模块内部的关系 低耦合:各个模

    2024年02月04日
    浏览(33)
  • Spring5学习随笔-Spring5的第一个程序(环境搭建、日志框架整合)

    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】 1.JDK1.8+ 2.Maven3.5+ 3.IDEA2018+ 4.SpringFramework 5.1.4 官网:www.spring.io Spring的jar包 1.设置pom的依赖 Spring的配置文件 1.配置文件的放置位置:任意位置

    2024年02月05日
    浏览(31)
  • spring6.0.x源码调试环境搭建

    搭建一个spring源码调试环境,创建一个spring-demo模块,写一些测试代码。 给源码添加注释。 给源码打包 Spring Framework fork到自己的GitHub仓库,然后拉代码 下载 https://gradle.org/releases/ gradle/wrapper/gradle-wrapper.properties 找到版本为7.6的 gradle 找到 7.6 的版本,点击下载(注:点击之后

    2023年04月09日
    浏览(24)
  • Spring Boot进阶(27):Spring Boot 整合 kafka(环境搭建+演示) | 超级详细,建议收藏

           在现代互联网应用中,消息驱动已经成为一种不可或缺的开发模式。而Kafka作为一款高性能的分布式消息系统,已经成为很多公司在消息驱动架构中的首选工具。本篇文章将介绍如何使用Spring Boot和Kafka快速构建消息驱动应用,让你在开发过程中轻松应对高并发的消息

    2024年02月05日
    浏览(35)
  • javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

    在开发中,maven和spring都是非常常用、非常重要的管理工具和框架,今天就在这里使用idea进行环境的搭建和创建第一个spring程序 1.1maven是一个跨平台的项目管理工具(主要管理jar包) 1.2它是Apache的一个开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包