HelloSpring-使用xml来创建对象

HelloSpring-使用xml来创建对象

一如既往地推荐狂神的视频,讲得通俗易懂,并且一定要跟着实践理解!
https://www.bilibili.com/video/BV1WE411d7Dv?p=5&vd_source=3c88fb7dae36f53e6a15081fb7cf9ff8

概述

本文将带领你使用xml的方式来创建对象,所有通过xml注入的对象在Spring加载xml的时候就已经创建好,随用随取
通过xml方式注入对象是Spring的精髓,将对象完全通过配置文件的方式加载进来,将创建对象的控制权进一步上交,极大地提升了代码的灵活性,修改对象的内容甚至无需改动代码

实践

  1. 创建Hello类
package com.kuangstudy.demo;

/**
 * 功能描述
 *
 * @since 2022-06-23
 */
public class Hello {
    private String str;

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

    public Hello() {
        System.out.println("无参构造");
    }

    @Override
    public String toString() {
        return "Hello{" +
                "str='" + str + '\'' +
                '}';
    }
}

2.在Resource中创建beans.xml,并在将其添加到配置文件中

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="hello" class="com.kuangstudy.demo.Hello">
        <property name="str" value="Spring"></property>
    </bean>

</beans>

3.创建测试类

package com.kuangstudy.demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 功能描述
 *
 * @since 2022-06-23
 */
public class HelloTest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Hello hello = (Hello) context.getBean("hello");
        System.out.println(hello);
    }
}

代码分析

可以在context.getBean("hello")处打个断点,可以发现控制台已经打出了"无参构造",由此可见,在加载beans.xml的时候,对象就已经被创建了

xml的语法
外面的代码包括头和可以在官网获取:https://docs.spring.io/spring-framework/docs/5.3.21/reference/html/core.html#spring-core

页签中配置对象的信息,id对应对象名称,class对应类名
页签中配置属性信息,name对应属性名,value对应属性值,如果属性类型是一个类,可以通过ref设置属性的实例名

posted @ 2022-06-24 11:23  Oh,mydream!  阅读(80)  评论(0编辑  收藏  举报