Spring-5,配置bean
来源:互联网 发布:网络创意 卖给 编辑:程序博客网 时间:2024/05/17 08:30
Spring管理的所有bean和他们之间的依赖关系都在配置文件中定义。
三种注入方式
- 属性注入
通过setter方法注入bean的属性值或者依赖的对象
属性注入在bean的配置文件中使用perperties节点,name指定属性名,value指定属性值 - 构造器注入
通过构造器注入bean的属性或者依赖的对象,保证bean实例从容器中取出来就可用。
构造注入在constructor-arg元素中声明属性,没有name属性 - 工厂方法注入
属性注入
<!-- 配置bean --> <!-- class:bean的全类名,通过反射的方式在IOC容器里面创建bean,要求bean提供一个默认的无参构造器 --> <!--id:标识bean,获取bean时使用,id唯一。 --> <bean id="helloworld" class="com.tuxianchao.spring.beans.HelloWorld"> <!-- 属性注入即通过setter方法注入属性值或者依赖的对象 (要有setter方法) --> <property name="name" value="Spring"></property> </bean>
构造器注入
<!-- 通过构造器注入 --> <!-- 构造器注入即通过构造器注入属性值或者依赖的对象(要有对应的构造方法) --> <!-- 使用constructor-arg的index(位置)和type(变量类型)属性来匹配重载的构造器 --> <bean id="car" class="com.tuxianchao.spring.beans.Car"> <constructor-arg index="0" value="AUDI"></constructor-arg> <constructor-arg> <value>baoma</value> </constructor-arg> <constructor-arg> <!--属性值也可以使用value子节点类配置 --> <value>500000</value> </constructor-arg> </bean>
配置bean的其他细节
字面值
<bean id="car" class="com.tuxianchao.spring.beans.Car"> <constructor-arg index="0" value="AUDI"></constructor-arg> <!-- 字面值:可以使用字符串来表示的值,可通过value元素或者value属性注入 --> <!-- 基本数据类型,字符串都可以采取字面值注入 --> <!-- 对于特殊字符可以使用<![CDATA]>包裹起来再使用 --> <constructor-arg> <value><![CDATA[<baoma>]]></value> </constructor-arg> <constructor-arg> <!--属性值也可以使用value子节点类配置 --> <value>500000</value> </constructor-arg> </bean>
引用其他bean
对于bean的属性依赖其他对象,可以通过ref标签来引用其他bean
<bean id="person" class="com.tuxianchao.spring.beans.Person"> <property name="name" value="zhangsan"></property> <property name="age" value="20"></property> <!--引用其他外部bean --> <!--通过rel属性引用其他对象添加依赖关系 --> <property name="car" ref="car"></property> </bean>
使用内部bean
<bean id="person2" class="com.tuxianchao.spring.beans.Person"> <property name="name" value="lisi"></property> <property name="age" value="22"></property> <property name="car"> <!-- 使用内部bean --> <!-- 对于只在某个对象内部使用的bean,可使用内部bean,无需id属性,外部不可见 --> <bean class="com.tuxianchao.spring.beans.Car"> <constructor-arg value="kia"></constructor-arg> <constructor-arg value="koera"></constructor-arg> <constructor-arg value="10000"></constructor-arg> </bean> </property> </bean>
注入null
<!--专有标记<null/>:为属性赋值为null --> <!-- <property name="car"> <null /> </property> -->
级联配置属性
<bean id="person3" class="com.tuxianchao.spring.beans.Person"> <constructor-arg value="wangwu"></constructor-arg> <constructor-arg value="24"></constructor-arg> <constructor-arg ref="car"></constructor-arg> <!-- 为级联属性赋值,在当前bean中设置依赖的bean的属性 --> <!-- 需要先为属性赋值,然后再为级联的属性赋值,否则会产生错误 --> <property name="car.brand"> <value>JEEP</value> </property> </bean>
0 0
- Spring-5,配置bean
- spring 5 bean配置--bean之间的关系
- spring bean的配置
- Spring Bean 配置说明
- Spring 中的 Bean 配置
- Spring Bean 配置说明
- Spring配置bean属性
- Spring Bean配置示例
- Spring Bean配置继承
- spring 配置bean
- spring FactoryBean配置Bean
- Spring之Bean配置
- Spring 配置Bean
- 10003---Spring--配置Bean
- Spring -- 注解配置Bean
- spring 注解配置bean
- 配置Spring bean
- Spring-bean基础配置
- poj3461 (裸kmp)kmp模板
- 简单Java类实训二
- ubuntu下安装程序的三种方法以及卸载命令
- leetcode_31. Next Permutation
- Sapera帮助文档
- Spring-5,配置bean
- ConcurrentHashMap 分段锁
- [IOS APP]【现代流行唱法】零基础入门学唱歌
- android面试java算法题【安卓进化四】
- 光场相机了解
- android app性能分析工具
- 数据库备份
- 默认为单列显示,把它变为两列显示
- JAVA类路径