Bean 配置

本文详细介绍了Spring框架中Bean的配置方式,包括通过XML文件配置Bean,Spring容器的创建,如BeanFactory和ApplicationContext的区别,以及如何从容器中获取Bean。此外,还讲解了依赖注入的两种方式:属性注入和构造注入,以及集合属性、内部bean和级联属性的配置。最后提到了Map、List和Properties集合类型的属性配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean配置

1.    通过xml文件进行配置

<bean id="hello"class="com.spring.pojo.Sys_user"><!-- 默认会调用java类的无参构造 -->

   <property name="username"value="Spring"></property>

</bean>

id:标识容器中的bean,唯一

class:bean的全类名获取bean(反射),bean的类中必须要有无参构造

2.Spring容器:

//1.创建springIOC容器

      ApplicationContextctx=new ClassPathXmlApplicationContext("ApplicationContext.xml");

      //2.IOC容器中获取bean

   user=(Sys_user) ctx.getBean("hello");

SpringIOC容器中读取Bea配置之前,首先要创建ioc容器,只有创建类容器才能在容器中获取bean

Spring提供类两种类型的IOC容器实现。

-BeanFactory :ioc容器的基本实现

-AppliacationContext:提供更多的特性,是BeanFactory的子接口。

—BeanFactory是spring框架的基础设施,面向Spring本身。

              ApplicationContext是面向Spring框架发热开发者,几乎所有的应用场合都直接使用ApplicationContext而不是BeanFactory。

-无论使用那种方式配置容器,配置文件都是相同的

3.ApplicationContext:

主要实现类:

a.  ClassPathXmlApplicationContext 从类路径中加载配置文件。

       b.  ConfigurableApplicationContext 从文件体系中加载配置文件

ConfigurableApplicationContext扩展与ApplicationContext新增了refresh()和close(),让ApplicationContext 具有启动、刷新、关闭的功能;

ApplicationContext在初始化的时候加载所有单例的bean.

WebApplicationContext是为web应用准备的,它允许从相对WEB根目录路中完成初始化工作

4.GetBean

在BeanFactory的接口中定义,可以根据id获取,也可以根据类型获取(类型要位置)

5.依赖注入:

       属性注入:使用<property>元素,name指明属性名称,value指明属性值

       构造注入:<constructor-arg>元素,value指明构造函数中属性的值。可以根据构造函数中参数的顺序和类型区分重载。Index 、type

       如果属性值包含特殊字符可以使用<!CDATA[属性值]>

       使用ref属性配置bean之间的引用关系

       <bean id="car" class="com.spring.pojo.Car">

      <constructor-arg>

         <value>@GALA</value>

      </constructor-arg>

      <constructor-arg value="lk1019"></constructor-arg>

      <constructor-arg value="15.6"></constructor-arg>

   </bean>

   <bean id="hello"class="com.spring.pojo.Sys_user"><!-- 默认会调用java类的无参构造 -->

      <property name="username"value="Spring"></property>

      <property name="car"ref="car"></property>

   </bean>

 也可以使用内部bean直接设置引用的bean的属性

<null/>null

Spring支持级联属性赋值

<property name="car.carname"value="Spring"></property>(但是一定要有set方法,并且需要先初始化化才可以为级联属性赋值)

5.集合属性

在Spring中可以通过内置的xml标签(<list/>,<set/>,<map>)来配置集合属性。,都是在property元素下的。

配置java,util.List类型的属性,需要指定,list标签,在标签中包含一些元素。这些标签可以通过<value>指定简单的常量值,通过<ref>指定其他Bean的引用。

<list name=""ref=""></list>

Map集合(也支持内部bean)

<map name="map属性">

         <entry key="key1"value-ref=""></entry>

         <entry key="key2"value-ref=""></entry>

</map>      

properties集合属性(字典)

<props>

            <prop key="user">root</prop>

            <prop key="password">123456</prop>

         </props>

配置独立的集合bean,为多个bean提供给,需要导入util命名空间

使用p命名空间,可以更加简洁

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值