Spring的getBean()方法

xml配置

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">
    <!--
        在Spring容器中配置bean对象
            id:bean的名字,在程序中可以通过id获取对应的对象,建议每个对象都给定id,且不能重复
            class:全类名,为了能够使Spring框架在底层通过Class.forName("全类名").newInstance()去调用JavaBean的无参构造方法
                    完成类的实例化
    -->
    <bean id="springDao" class="com.sy.Demo1.dao.impl.SpringDaoImpl"></bean>

    <bean id="springDao2" class="com.sy.Demo1.dao.impl.SpringDaoImpl"></bean>

    <!--<bean class="com.sy.dao.impl.UserDaoImpl"></bean>-->
    <!--
        错误:接口不能被实例化
    -->
    <!--<bean id="userDao3" class="com.sy.dao.UserDao"></bean>-->

    <!--
        错误:抽象类不能被实例化
    -->
    <!--<bean id="calendar1" class="java.util.Calendar"></bean>-->
</beans>

java调用

package com.sy.Demo1.text;

import com.sy.Demo1.dao.SpringDao;
import com.sy.Demo1.dao.impl.SpringDaoImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.Arrays;

public class Text {
    public static void main(String[] args) {
//        实例对象
        SpringDao springDao0 = new SpringDaoImpl();
//        getBean获取对象
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println(ac);
        SpringDao springDao = (SpringDao) ac.getBean("springDao");
        System.out.println(springDao);
        SpringDao springDao1 = (SpringDao) ac.getBean("springDao");
        System.out.println(springDao1);
//        SpringDao springDao2=ac.getBean(SpringDao.class);
//        System.out.println(springDao2);
        SpringDao springDao3 = ac.getBean("springDao", SpringDao.class);
        System.out.println(springDao3);
        SpringDao springDao4 = ac.getBean("springDao2", SpringDao.class);
        System.out.println(springDao4);
        String[] beanNames = ac.getBeanDefinitionNames();
        System.out.println(Arrays.toString(beanNames));
        SpringDao springDao2 = ac.getBean(beanNames[0], SpringDao.class);
        System.out.println(springDao2);

    }
}

输出结果

无参构造方法
无参构造方法
org.springframework.context.support.ClassPathXmlApplicationContext@17f052a3: startup date [Mon Jun 24 16:55:19 CST 2019]; root of context hierarchy
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@e25b2fe
[springDao, springDao2]
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值