您现在的位置是:首页 > 编程 > 

【Spring】002

2025-07-27 13:08:32
【Spring】002 一、探索Spring IOC创建对象1、前述在Spring的入门程序HelloSpring中,我们并没有使用“new 类();”语句,Spring帮我们自动创建了,现在让我们来探索一下Spring帮我的创建对象的过程;2、代码示例(常规写法)第一步:我们先写一个User实体类代码语言:javascript代码运行次数:0运行复制package com.zibo.pojo;

【Spring】002

一、探索Spring IOC创建对象

1、前述

在Spring的入门程序HelloSpring中,我们并没有使用“new 类();”语句,Spring帮我们自动创建了,现在让我们来探索一下Spring帮我的创建对象的过程;

2、代码示例(常规写法)

第一步:我们先写一个User实体类
代码语言:javascript代码运行次数:0运行复制
package com.zibo.pojo;

public class User {
    private String name;

    public User() {
        println("user对象被创建了!");
    }

    public String getame() {
        return name;
    }

    public void setame(String name) {
         = name;
    }

    public void show(){
        println("name为:" + name);
    }
}
第二步:写测试类
代码语言:javascript代码运行次数:0运行复制
package com.zibo;

import com.zibo.pojo.User;

public class MyTest {
    public static void main(String[] args) {
        new User();
    }
}
测试结果:
代码语言:javascript代码运行次数:0运行复制
user对象被创建了!
总结:

我们平常使用new通过构造函数创建对象,构造函数被调用,其中代码会执行,那么让我们来探索Spring创建对象的痕迹 ;

、Spring创建对象

第一步:编写applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User"/>
</beans>
第二步:修改测试类
代码语言:javascript代码运行次数:0运行复制
package com.zibo;

import org.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        //获取Spring上下文容器对象
        new ClassPathXmlApplicationContext("applicationContext.xml");
    }
}
测试结果:
代码语言:javascript代码运行次数:0运行复制
user对象被创建了!
总结:

可以看出,在加载配置文件的时候,Spring为我们通过无参构造创建了user对象;

4、让我们再加上属性注入

第一步:修改applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User">
        <property name="name" value="訾博"/>
    </bean>
</beans>
第二步:修改User类的setame方法
代码语言:javascript代码运行次数:0运行复制
package com.zibo.pojo;

public class User {
    private String name;

    public User() {
        println("user对象被创建了!");
    }

    public String getame() {
        return name;
    }

    public void setame(String name) {
        println("setame方法被执行了");
         = name;
    }

    public void show(){
        println("name为:" + name);
    }
}
测试结果:
代码语言:javascript代码运行次数:0运行复制
user对象被创建了!
setame方法被执行了
总结:

看懂了吧!注意这里是使用无参构造方法创建对象

注意:

必须有无参构造方法,否则报错!

二、继续探索Spring IOC创建对象

1、让我们使用带参构造函数进行创建对象

第一步:修改User实体类(添加带参构造)
代码语言:javascript代码运行次数:0运行复制
package com.zibo.pojo;

public class User {
    private String name;

    public User() {
        println("user对象被创建了!");
    }

    public User(String name) {
         = name;
        println("使用带参构造创建对象了!");
    }

    public String getame() {
        return name;
    }

    public void setame(String name) {
        println("setame方法被执行了");
         = name;
    }

    public void show(){
        println("name为:" + name);
    }
}
第二步:修改applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User">
        <!--使用下标赋值-->
        <ctructor-arg index="0" value="訾博"/>
    </bean>
</beans>
测试结果:
代码语言:javascript代码运行次数:0运行复制
使用带参构造创建对象了!

2、applicationContext.xml配置文件中使用带参构造函数创建对象传参的几种方式

方法一:使用下标传参
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User">
        <!--使用下标传参-->
        <ctructor-arg index="0" value="訾博"/>
    </bean>
</beans>
方法二:使用自动类型传参(自动根据类型传参:不建议使用)
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User">
        <!--使用自动类型传参(自动根据类型传参:不建议使用)-->
        <ctructor-arg type="java.lang.String" value="訾博"/>
    </bean>
</beans>
方式三:使用name给对应的属性名传参
代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
       xmlns:xsi=";
       xsi:schemaLocation=" .xsd">
    <bean id="user" class="com.zibo.pojo.User">
        <!--使用name给对应的属性名传参-->
        <ctructor-arg name="name" value="訾博"/>
    </bean>
</beans>

、注意

默认情况下,配置文件被加载时,所有的bean对象都会被实例化,而且只创建这一次,随后无论取几次,所取到的对象都是同一个对象;

三、总结

默认情况下,IOC创建对象就是在配置文件被加载的时候,Spring会立即通过所配置bean对应类的无参构造方法和setter方法或带参构造方法创建所有的bean对象,当需要的时候从IOC容器获取即可,只创建这一次,随后无论取几次,所取到的对象都是同一个对象;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除springhttpioc测试对象

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1198633.html

相关标签:无
上传时间: 2025-07-23 12:20:15

上一篇:【Spring Boot】035

下一篇:【Spring Boot】034

留言与评论(共有 9 条评论)
本站网友 盘龙二手房
19分钟前 发表
原始发表:2025-01-06
本站网友 我靠重庆
13分钟前 发表
schemaLocation=" .xsd"> <bean id="user" class="com.zibo.pojo.User"/> </beans>第二步:修改测试类代码语言:javascript代码运行次数:0运行复制package com.zibo; import org.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { //获取Spring上下文容器对象 new ClassPathXmlApplicationContext("applicationContext.xml"); } }测试结果:代码语言:javascript代码运行次数:0运行复制user对象被创建了!总结:可以看出
本站网友 163两性网
15分钟前 发表
schemaLocation=" .xsd"> <bean id="user" class="com.zibo.pojo.User"/> </beans>第二步:修改测试类代码语言:javascript代码运行次数:0运行复制package com.zibo; import org.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { //获取Spring上下文容器对象 new ClassPathXmlApplicationContext("applicationContext.xml"); } }测试结果:代码语言:javascript代码运行次数:0运行复制user对象被创建了!总结:可以看出
本站网友 龙岩电影院
22分钟前 发表
所取到的对象都是同一个对象;三
本站网友 景洪租房
21分钟前 发表
随后无论取几次
本站网友 马油的功效
19分钟前 发表
IOC创建对象就是在配置文件被加载的时候
本站网友 视频合成软件
8分钟前 发表
xsi="; xsi
本站网友 荣威4s店
12分钟前 发表
原始发表:2025-01-06