『Spring』IOC创建对象的方式

一:调用无参数构造器

 public User(){
       super();
       System.out.println("无参数构造器");
    }

在Spring的 applicationContext.xml 配置文件中添加如下代码

<bean id="user" class="cn.yan.spring.User"></bean>

以上配置中,class表示“类”,取值应该是类的全名,即包名和类名,id是自定义的名称,通常使用类名并且首字母改为小写,

例如类名是Date,则id值为date,如果类名是Student,则id值为student

public static void main(String[] args) {
    // 加载Spring的配置文件,获取Spring容器
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

    // 通过Spring容器获取对象
    Date user= (User) ac.getBean("user");

    // 测试输出
    System.out.println(user);
}

二:调用带参数构造器

 public User(int id, String name){
        System.out.println("带参数构造器");
        this.id = id;
        this.name = name;
    } 

在Spring的 applicationContext.xml 配置文件中添加如下代码

<!-- 方法1 -->
<bean id="user" class="com.isoftstone.bean.User">
    <constructor-arg value="100" index="0" type="int" ></constructor-arg>
    <constructor-arg value="StanLong" index="1" type="java.lang.String"></constructor-arg>
</bean> 

<!--方法2 依赖参数-->
<bean id="str" class="java.lang.String">
    <constructor-arg value="StanLong"></constructor-arg>    
</bean>
<bean id="user" class="com.isoftstone.bean.User"> <constructor-arg index="0" type="int" value="100" ></constructor-arg> <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>
</bean>
public static void main(String[] args) {
    // 加载Spring的配置文件,获取Spring容器
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

    // 通过Spring容器获取对象
    Date user= (User) ac.getBean("user");
  // 测试输出  
  System.out.println(
user.getId());
  System.out.println(user.getName()); 
}

三:工厂模式创建对象(静态方法和实例方法)

通过工厂类创建对象

//先创建一个工厂类//工厂类
public class ObjectFactory {
    
    //实例方法创建对象
    public User getInstance(){
        return new User(100, "调用实例方法");
    }
    
    //静态方法创建对象
    public static User getStaticInstance(){
        return new User(101, "调用静态方法");
    }

}
原文地址:https://www.cnblogs.com/yan-sh/p/13392984.html