问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是spring的内部bean

发布网友 发布时间:2022-04-27 11:57

我来回答

1个回答

热心网友 时间:2023-09-16 21:01

在Spring框架中,一个bean仅用于一个特定的属性,这是提醒其声明为一个内部bean。内部bean支持setter注入“property”和构造器注入"constructor-arg“。
下面来看看一个详细的例子,演示使用 Spring 内部 bean 。
package com.yii.common;

public class Customer
{
private Person person;

public Customer(Person person) {
this.person = person;
}

public void setPerson(Person person) {
this.person = person;
}

@Override
public String toString() {
return "Customer [person=" + person + "]";
}
}
package com.yii.common;

public class Person
{
private String name;
private String address;
private int age;

//getter and setter methods

@Override
public String toString() {
return "Person [address=" + address + ",
age=" + age + ", name=" + name + "]";
}
}

很多时候,可以使用 'ref' 属性来引用“Person” bean到“Customer” Bean,person的属性如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="CustomerBean" class="com.yii.common.Customer">
<property name="person" ref="PersonBean" />
</bean>

<bean id="PersonBean" class="com.yii.common.Person">
<property name="name" value="yii" />
<property name="address" value="address1" />
<property name="age" value="28" />
</bean>

</beans>

在一般情况下,引用这样也没有问题,但由于“yii” persion bean 只用于Customer bean,这是更好地声明 “yii” person 作为一个内部 bean,如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="CustomerBean" class="com.yii.common.Customer">
<property name="person">
<bean class="com.yii.common.Person">
<property name="name" value="yii" />
<property name="address" value="address1" />
<property name="age" value="28" />
</bean>
</property>
</bean>
</beans>

内部 bean 也支持构造器注入如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="CustomerBean" class="com.yii.common.Customer">
<constructor-arg>
<bean class="com.yii.common.Person">
<property name="name" value="yii" />
<property name="address" value="address1" />
<property name="age" value="28" />
</bean>
</constructor-arg>
</bean>
</beans>

注意:

id 或 name 值在bean类是没有必要以一个内部 bean 呈现,它会简单地忽略Spring容器。
执行结果:
package com.yii.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App
{
public static void main( String[] args )
{
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"});

Customer cust = (Customer)context.getBean("CustomerBean");
System.out.println(cust);

}
}

输出结果:
Customer [person=Person [address=address1, age=28, name=yii]]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
滴管的化妆品如何确定已经使用 什么是工程硕士啊 什么是工程硕士呀 为什么工科的叫做工程硕士,工学的叫做工学硕士? 谁能给我排几套炉石传说潜行者的平民化套牌,要大众化的,稀有、史诗、传... 炉石传说推荐新手卡组潜行者? 炉石传说潜行者通灵学园扩展包新卡有哪些_通灵学园扩展包潜行者卡牌大 ... 炉石传说狗头人冒险盗贼卡牌 潜行者初始套牌一览 马桶堵了怎么办 坐便器冲水方式哪种好 各位喜欢郑源的朋友,帮忙查一下林学〈森林保护〉的就业岗位_百度... Java程序中,做东西需要分层打包,一下几个包是什么意思,主要是做什么的? spring 中依赖注入有哪几种注解 spring在什么情况使用bean pea和bean有什么不同?pea吃皮,bean吃豆吗? com.ibatis.common.beans.ProbeException kidney bean同French bean的区别。二者同译为芸豆、四季豆。 commons-beanutils-1.8.3是什么jar包 Bean和注入Bean的几种常用注解和区别 java 从数据库中取出的值为什么都是null common所有的句型结构以及短语 老婆在美国买了ROOT OF COMMON BEANCAPER,这个是什么东西呀。 sql预编译语句就是不执行,怪怪的,求解,急~~ 求助:spring mvc 注解方式 如何注入map 和 list 陈皮红豆沙的英文怎么说 九里春枫怎么样?好不好?值不值得买? 龙湖九里晴川揽境怎么样?好不好?值不值得买? 国悦·半山九里怎么样?好不好?值不值得买? 龙湖九里晴川怎么样?好不好?值不值得买? 与点置业卖华润石梅湾九里的房子吗? 九里欣园怎么样?好不好?值不值得买? commonutils.tobean在哪个jar vivo手机充电头会响咋回事 生病时不能吃发物,所谓的发物是什么?该注意什么? 不是发物的水果 什么是发物 哪些食物是发物 QQ浏览器打不开网页游戏 QQ浏览器for mac一开就卡死机 QQ浏览器打不开QQ空间的游戏 mac,QQ浏览器上一些网站显示不正常 腾冲火山是不是世界遗产? 腾冲火山的特点是什么? 腾冲境内的火山是怎么形成的? 我国腾冲境内的火山大约有多少座? 腾冲有没有火山?属于那种火山 腾冲火山周围有哪些奇异景象? 腾冲火山有哪些潜在危险? 腾冲火山的发展历史 云南最牛城市,里面有极边第一城,有古火山,还有奇怪的热海吗? 腾冲火山群的火山的形成 腾冲火山的地理环境