接口ApplicationContext中的getBean()方法的详解

接口ApplicationContext中的getBean()方法的详解我们知道可以通过 ApplicationC 的 getBean 方法来获取 Spring 容器中已初始化的 bean getBean 一共有以下四种方法原型 lgetBean Stringname lgetBean Class lt T gt type lgetBean Stringname Class lt T gt type lgetBean Stringname Object

public class Person { private String name; private int age; public Person(){} public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
 
   
    
    
   
@Test public void testPerson() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ctx.getBean("p"); System.out.println(p); }
 
   
    
    
   
   
    
    
  

那么通过com.bean.Person这种类型来查找bean,参考代码如下:

@Test public void testPerson() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = ctx.getBean(Person.class); System.out.println(p); } 
 
   
    
    
   
   
    
    
  

参考代码如下:

@Test public void testPerson() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = ctx.getBean("p2",Person.class); System.out.println(p); }

这样可以获取到名字叫”李四”的对象。

public class PersonFactory { //静态工厂注入 public static Person getPersonInstance(String name,int age)throws Exception { Person p = (Person)Class.forName("com.bean.Person").newInstance(); Method m = p.getClass().getMethod("setName", java.lang.String.class); m.invoke(p, name); m = p.getClass().getMethod("setAge", int.class); m.invoke(p, age); return p; } } 
@Test public void testPerson() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ctx.getBean("p3",new Object[]{"王五",35}); System.out.println(p); } 

如果想通过工厂注入属性,在applicationContext.xml配置如下bean:

 
   
    
     
    
    
  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208415.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:39
下一篇 2026年3月19日 上午11:39


相关推荐

  • jvm最全详解-05-JVM调优工具详解及调优实战[通俗易懂]

    jvm最全详解-05-JVM调优工具详解及调优实战[通俗易懂]jvm最全详解-05-JVM调优工具详解及调优实战前置启动程序事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用Jmap此命令可以用来查看内存信息,实例个数以及占用内存大小jmap-histo14660#查看历史生成的实例jmap-histo:live14660#查看当前存活的实例,执行过程中可能会触发一次fullgc打开log.txt,文件内容如下:num:序号 instances:实例数量 b..

    2022年5月31日
    44
  • pycharm最新版本激活码activation code

    pycharm最新版本激活码activation code2RRJMBXW33 eyJsaWNlbnNl

    2026年3月27日
    6
  • linux基本命令iscsiadm,iscsiadm命令使用方法[通俗易懂]

    linux基本命令iscsiadm,iscsiadm命令使用方法[通俗易懂]1.检查操作系统是否按照iscsi[root@linux01~]#rpm-qa|grepiscsiiscsi-initiator-utils-6.2.0.873-2.el6.x86_64如果没有按照的话,可以使用yuminstall命令进行安装2.检查iscsi服务配置[root@linux01~]#chkconfig–list|grepiscsiiscsi…

    2022年8月23日
    8
  • java抽象类和抽象方法[通俗易懂]

    java抽象类和抽象方法[通俗易懂]1.抽象的概念2.抽象类和抽象方法的使用1//抽象方法和抽象类的格式:2/*抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束;3抽象类:抽象方法所在的类,必须是抽象

    2022年7月3日
    30
  • Cursor 新手入门使用教程,AI 赋能的下一代 IDE

    Cursor 新手入门使用教程,AI 赋能的下一代 IDE

    2026年3月16日
    2
  • phpstorm使用教程

    phpstorm使用教程phpstorm 包含了 webstorm 的全部功能 更能够支持 php 代码 PhpStorm 是一个轻量级且便捷的 PHPIDE 其旨在提供用户效率 可深刻理解用户的编码 提供智能代码补全 快速导航以及即时错误检查 phpstorm 的好功能有很多很多 为我们快速有效地完成项目提供了很多的方便之处 下面我们就一窥它的神奇之处吧 先从捣鼓编辑器外观让我们看着顺眼些开始吧 1 修改整个

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号