spring管理bean

大家好,这里是教授.F

管理bean方面:


获取bean:

/**
* 通过类型来获取容器的 bean 对象
*/
@Test
public void getMonsterByType() {
    ApplicationContext ioc = new ClassPathXmlApplicationContext("beans.xml");
    Monster monster = ioc.getBean(Monster.class);
    System.out.println("monster=" + monster);

    Monster monster2 = ioc.getBean(Monster.class);
    System.out.println("monster == monster2 的值= " + (monster == monster2));
}
1. 按类型来获取 bean, 要求 ioc 容器中的同一个类的 bean 只能有一个, 
否则会抛出异常NoUniqueBeanDefinitionException
2. 这种方式的应用场景:比如 XxxAction/Servlet/Controller, 
或 XxxService 在一个线程中只需要一个对象实例(单例)的情况
3. 老师这里在说明一下: 在容器配置文件(比如 beans.xml)中给属性赋值, 底层是通过
setter 方法完成的, 这也是为什么我们需要提供 setter 方法的原因

通过构造器配置bean对象:

<!-- 在 spring 的 ioc 容器, 可以通过构造器来配置 bean 对象
-->
<bean id="monster02" class="com.hspedu.spring.beans.Monster">
<constructor-arg value="2" index="0"/>
<constructor-arg value="蜘蛛精" index="1"/>
<constructor-arg value="吐口水" index="2"/>
</bean>
<!-- 数据类型就是对应的 Java 数据类型,按构造器参数顺序
-->
<bean id="monster03" class="com.hspedu.spring.beans.Monster">
<constructor-arg value="3" type="java.lang.Integer"/>
<constructor-arg value="白骨精" type="java.lang.String"/>
<constructor-arg value="白骨鞭" type="java.lang.String"/>
</bean>
通过 index 属性来区分是第几个参数
2. 通过 type 属性来区分是什么类型(按照顺序)

通过P名称空间配置bean:

<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" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 在 spring 的 ioc 容器, 可以通过 p 名称空间来配置 bean 对象 -->
<bean id="monster04" class="com.hspedu.spring.beans.Monster"
    p:monsterId="4" p:name="红孩儿"
    p:skill="吐火~"
/>

相关推荐

  1. spring管理bean

    2024-06-06 04:38:03       12 阅读
  2. Spring框架-Spring Bean管理

    2024-06-06 04:38:03       30 阅读
  3. spring之基于注解管理Bean

    2024-06-06 04:38:03       33 阅读
  4. spring基于Xml管理bean---自动装配

    2024-06-06 04:38:03       45 阅读
  5. spring基于xml的bean管理总结

    2024-06-06 04:38:03       46 阅读
  6. Spring 学习2 --基于xml管理Bean

    2024-06-06 04:38:03       31 阅读
  7. 关于Spring管理Bean的杂谈

    2024-06-06 04:38:03       32 阅读
  8. Spring 之 IoC基于XML管理Bean

    2024-06-06 04:38:03       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 04:38:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 04:38:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 04:38:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 04:38:03       20 阅读

热门阅读

  1. C++的RTTI(Runtime Type Information)杂谈

    2024-06-06 04:38:03       8 阅读
  2. spring 事务方式和事务传播

    2024-06-06 04:38:03       10 阅读
  3. 参考——单片机_外部中断_按键消抖

    2024-06-06 04:38:03       9 阅读
  4. 从0到1学Binder-Binder驱动初始化

    2024-06-06 04:38:03       9 阅读
  5. Yshop框架的小程序登录

    2024-06-06 04:38:03       10 阅读
  6. Appium框架

    2024-06-06 04:38:03       9 阅读
  7. 东方博宜1957 - 求三个数的平均数

    2024-06-06 04:38:03       10 阅读
  8. 数字取证技术(Digital Forensics Technology)实验课II

    2024-06-06 04:38:03       10 阅读
  9. 【tansformers库】LLM基本过程 & 模型加载

    2024-06-06 04:38:03       10 阅读
  10. Redis 常用基本命令

    2024-06-06 04:38:03       9 阅读
  11. 正大国际期货:内盘与外盘的区别

    2024-06-06 04:38:03       7 阅读
  12. 在Github找自己想要的的项目

    2024-06-06 04:38:03       10 阅读
  13. Docker简介

    2024-06-06 04:38:03       8 阅读
  14. 纯C++做多项式拟合

    2024-06-06 04:38:03       9 阅读