spring--ioc创建对象的方式

1.使用无参构造,默认方式。

public class User {
    private String str;

    public User(){
        System.out.println("无参构造");
    }
    public String getStr() {
        return str;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "str='" + str + '\'' +
                '}';
    }
}
 <bean id="user" class="com.yf.pojo.User">
                <property name="str" value="yf"/>
        </bean>

测试:

public class Mytest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");


    }
}

输出:无参构造

说明在加载配置文件beans.xml的时候对象已经创建,后面的

User user = (User) context.getBean("user");

的方法只是把创建的对象拿过来用罢了。

2.有参构造

   public User(String str){
       this.str = str;
   }

(1)index     

        <bean id="user" class="com.yf.pojo.User">
                <constructor-arg index="0" value="YF"/>
        </bean>

(2)type不建议使用:如果有两个一样的类型就没有办法了

        <bean id="user" class="com.yf.pojo.User">
                <constructor-arg type="java.lang.String" value="yfyf"/>
        </bean>

(3)直接通过参数名

        <bean id="user" class="com.yf.pojo.User">
                <constructor-arg name="str" value="yfyfyf"/>
        </bean>

如果是也是bean类型就可以嵌套



<beans>
    <bean id="beanOne" class="x.y.ThingOne">
        <constructor-arg ref="beanTwo"/>
        <constructor-arg ref="beanThree"/>
    </bean>

    <bean id="beanTwo" class="x.y.ThingTwo"/>

    <bean id="beanThree" class="x.y.ThingThree"/>
</beans>

只要对象被注入,不管最后getBean没有,所有对象在容器context里面都已经创建好了,即使你没有用它。就好像婚庆介绍所,你可以去里面找对象,当无论你去不去那里面的对象都在那,跑不了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值