5IoC中获取bean

5IoC中获取bean

回到spring导航页

//classpath: 代表resources目录下
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        Apple appleA = context.getBean("appleA",Apple.class);
        System.out.println(appleA);

id和name属性相同点

<!--<bean id="apple5" factory-bean="appleInstanceFactory" factory-method="createSweetApple"></bean>-->
    <bean name="apple5" factory-bean="appleInstanceFactory" factory-method="createSweetApple"></bean>
  • bean id 和name都是设置对象在IoC容器中唯一标识
  • 两者在同一配置文件中都不允许出现重复
  • 两者允许在多个配置文件中出现重复重复,新对象覆盖旧对象

id和name属性不同点

  • id要求更为严格,一次只能定义一个对象标识(推荐使用id)
  • name更为宽松,一次允许定义多个对象标识
  • tips:id和name的命名要求有意义,按驼峰命名书写
package com.torey.spring.ioc;

import com.torey.spring.ioc.entity.Apple;
import com.torey.spring.ioc.entity.Child;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringApplication {
    public static void main(String[] args) {
//        String[] configLocations=new String[]{"classpath:applicationContext.xml","classpath:applicationContext2.xml"};
        String[] configLocations2=new String[]{"classpath:applicationContext2.xml","classpath:applicationContext.xml"};
        //classpath: 代表resources目录下
        ApplicationContext context = new ClassPathXmlApplicationContext(configLocations2);
        Apple appleA = context.getBean("appleB",Apple.class);
        System.out.println(appleA);
    }
}

没有id和name的bean

<!--没有id和name的bean,默认使用类名全称作为bean标识-->
    <bean class="com.torey.spring.ioc.entity.Apple">
        <!--没有constructor-arg 则代表调用默认构造方法实例化-->
        <constructor-arg name="color" value="黄色b"></constructor-arg>
        <constructor-arg name="origin" value="中国b"></constructor-arg>
        <constructor-arg name="title" value="金帅b"></constructor-arg>
    </bean>
package com.torey.spring.ioc;

import com.torey.spring.ioc.entity.Apple;
import com.torey.spring.ioc.entity.Child;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringApplication {
    public static void main(String[] args) {
        String[] configLocations2=new String[]{"classpath:applicationContext.xml"};
        //classpath: 代表resources目录下
        ApplicationContext context = new ClassPathXmlApplicationContext(configLocations2);
        Apple appleA = context.getBean("com.torey.spring.ioc.entity.Apple",Apple.class);
        System.out.println(appleA);
    }
}

导航,上一页,下一页

4初始化IoC容器

6SpringIoc路径表达式用法

支持我-微信扫一扫-加入微信公众号

Aseven公众号

赞赏作者

赞赏作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值