Spring的IOC创建对象方式

Spring中文文档:https://docs.spring.io/spring-framework/docs/5.2.0.RELEASE/spring-framework-reference/core.html#beans-factory-metadata

可分为有参创建和无参创建

Spring的IOC创建对象时只要写在XML文件中的都会进行创建如下代码

User.java

复制代码
package pojo;

public class User {
    private String name;

    public User()
    {
        System.out.println("User的无参构造");
    }
    public User(String name)
    {
        System.out.println("User的有参构造"+name);
        this.name=name;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public void show()
    {
        System.out.println("name="+name);
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}
复制代码

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">

    <!-- services -->
    <!--  无参构造创建对象  -->
    <bean id="user" class="pojo.User">
        <property name="name" value="苗可卓"/>
    </bean>
    <!--  有参方式创建对象  -->
    <!--  下标方式创建有参构造  -->
    <bean id="user1" class="pojo.User">
        <constructor-arg index="0" value="苗可卓1"/>
    </bean>
    <!--  参数类型创建  -->
    <bean id="user2" class="pojo.User">
    <constructor-arg type="java.lang.String" value="苗可卓2"/>
    </bean>
</beans>
复制代码

mytest.java

复制代码
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.User;

public class mytest {

    public static void main(String[] args) {
        ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml");
        User user=(User) context.getBean("user1");
        user.show();
    }

}
复制代码

输出结果

 

 

 

 

分析:只要是在xml中的bean对象都会被创建好,调用时即可使用

 

posted @   yizhixiaozhu  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示