Bean 配置

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 08:26   34   0

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命名空间,可以更加简洁

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP