美文网首页
2.2 Spring的第一个程序-第2章 IoC控制反转

2.2 Spring的第一个程序-第2章 IoC控制反转

作者: 努力学习的lfk | 来源:发表于2021-08-18 08:37 被阅读0次

2.2 Spring的第一个程序 实验步骤:

1.创建maven项目
Creat New Project -> Empty Project
添加Modules -> Maven -> 勾选Create from archetype ->选择maven-archetype-quickstart ->修改GroupId:org.example->创建main目录下创建目录 resourv ->右键 Mark Directory as ->选择Resources Root

2.加入maven的依赖//用到框架即要用到框架对应的jar包
spring的依赖,版本5.2.5版本
junit依赖//单元测试依赖,方便测试程序

pom.xml文件内 -> <dependencies></dependencies>内添加

spring依赖.png
<properties></properties>内jdk版本改为安装版本
修改jdk版本.png

修改jdk版本2.png

3.创建类(接口和它的实现类)//和没有使用框架一样,即普通类
在目录下创建接口

创建接口.png
Alt+Enter 调出解决方法然后生成接口的所有方法-> 选择Implement interface
生成实现类.png
定义实现类.png
用正转的方式定义测试类
定义测试类.png

4.创建spring需要使用的配置文件
声明类的信息,这些类由spring创建和管理

XML Configuartion File->Spirng Config
用反转的方式定义测试类
声明bean告诉spring要创建某个类的对象<bean id="" class="" />
spring把创建好的类放入到map中,spring框架有一个map存放对象的springMap.put(id的值,对象);
一个bean标签声明一个Java对象

创建bean.png

5.测试(使用)spring创建的对象
CTRL+h看实现类

工作常用类ClassPathXmlApplicationContext.png
  • 指定spring配置文件的名称
String config="beans.xml";
  • 创建表示spring容器的对象,ApplicationContext
    ApplicationContext:表示spring容器,通过容器获取对象了
    ClassPathXmlApplicationContext:表示从类路径中加载spring的配置文件
ApplicationContext ac = new ClassPathXmlApplicationContext(config);
  • 从容器中获取某个对象,即调用对象的方法
    getBean("配置文件中的bean的id值")
ac.getBean(s:"somService");

因为创建的是somServiceImp1类的对象


类的类型.png

而somServiceImp1使用了接口,所它是接口SomeService类型的


SomeServiceImp1是接口类型的.png

getBean方法返回object(对象),需要把值转成需要的类型

SomeService service = (SomeService)ac.getBean(s:"somService");
  • 使用spring创建好的对象
serveice.doSome();
调用spring对象.png

执行流程:
在测试文件中创建对象ac用的类是ClassPathXmlApplicationContext ->
ClassPathXmlApplicationContext 读config(指向配置文件) ->
在配置文件中遇到bean标签,通过反射机制来调用com.bjpowernode.service.impl.SomeServiceImpl类的构造方法创建对象someService ->
把创建好的对象放到容器的map中 ->
从容器中拿到someService 名称的对象(从容器的map中获取) ->
讲拿到的对象赋值给service
*

spring默认创建对象的时间:在创建spring容器时,会创建配置文件中的所有对象
*spring创建对象:默认调用的是无参数构造方法

通过spring提供的接口获取容器的对象信息

  • 使用spring提供的方法,获取容器中定义的对象数量
    getBeanDefinitionCount()方法
@Test
    public void test03(){
        String config="beans.xml";

        ApplicationContext ac = new ClassPathXmlApplicationContext(config);

        int nums = ac.getBeanDefinitionCount();

        System.out.println("容器中定义的对象的数量为:"+nums);

    }
  • 容器中每个定义的对象的名称
    getBeanDefinitionNames()方法
//利用spring提供的方法,获取容器中定义的对象的名称
        String names [] =ac.getBeanDefinitionNames();
        for(String name:names){
            System.out.println("容器中对象的名称:"+name);
        }
  • 获取一个非自定义的类对象
<bean id="mydate" class="java.util.Date" />
@Test
    public void test04(){
        String config="beans.xml";

        ApplicationContext ac = new ClassPathXmlApplicationContext(config);

        Date my=(Date) ac.getBean("mydate");
        System.out.println("当前系统时间:"+my);
    }

总结:bean标签只要有类,就能创建对象


笔记来源:B站动力节点 spring学习视频

视频链接:https://www.bilibili.com/video/BV1nz4y1d7uy

相关文章

  • Spring笔记

    Spring 控制反转IOC IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动...

  • JAVA之Spring Bean

    1、Spring Ioc 控制反转【大工厂】 IoC 控制反转Spring IoC:Inversion of Co...

  • web填坑日记-Spring(1)

    Spring IOC(控制反转) IOC理论背景 IOC(Inversion of Control,控制反转 )...

  • Spring控制反转(IOC)

    简书日更 第2篇: 重新学习Spring控制反转(IOC)相关知识 什么是Spring IOC 容器? 控制反转(...

  • 原来弄懂Spring IOC(控制反转),其实没有那么难

    Spring IOC(控制反转) IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为...

  • Spring IOC源码最全分析

    IOC 控制反转 1. Spring IOC 的原理? spring ioc 即控制反转,就是将我们创建和管理对象...

  • Spring(2)——Spring IoC 详解

    Spring IoC 概述 IoC:Inverse of Control(控制反转) 读作“反转控制”,更好理解,...

  • 43 反转控制和依赖注入

    IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转)。这是spring的核心...

  • Spring IoC

    IoC(Inversion of Control),即控制反转,在 Spring 中实现控制反转的是 IoC 容器...

  • Spring

    什么是 IOC ,了解 Spring IOC 的原理吗? IOC/DI:控制反转,本质是将原来程序中对象创建、依赖...

网友评论

      本文标题:2.2 Spring的第一个程序-第2章 IoC控制反转

      本文链接:https://www.haomeiwen.com/subject/vlutpltx.html