以下部分显示如何使用Spring内部bean。
在下面我们有Customer Bean。 在客户对象中我们有一个自定义对象Person。
package com.www..cnmon; public class Customer { private Person person; public Customer() { } public Customer(Person person) { this.person = person; } public void setPerson(Person person) { this.person = person; } @Override public String toString() { return "Customer [person=" + person + "]"; } }
这里是Person类的定义。
package com.www..cnmon; public class Person { private String name; private String address; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [address=" + address + ",age=" + age + ", name=" + name + "]"; } }
将Person Java bean注入Customer bean的一种方法是使用ref属性,如下所示。
<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.www..cnmon.Customer"> <property name="person" ref="PersonBean" /> </bean> <bean id="PersonBean" class="com.www..cnmon.Person"> <property name="name" value="java2s" /> <property name="address" value="address1" /> <property name="age" value="28" /> </bean> </beans>
Person bean在Customer bean中定义在同一个级别,我们使用ref属性引用Person bean。
如果Person bean只用在Customer bean中,我们可以嵌套Person的定义bean里面的Customer 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.www..cnmon.Customer"> <property name="person"> <bean class="com.www..cnmon.Person"> <property name="name" value="java2s" /> <property name="address" value="address1" /> <property name="age" value="28" /> </bean> </property> </bean> </beans>
以下xml代码显示了如何使用内部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.www..cnmon.Customer"> <constructor-arg> <bean class="com.www..cnmon.Person"> <property name="name" value="java2s" /> <property name="address" value="address1" /> <property name="age" value="28" /> </bean> </constructor-arg> </bean> </beans>
以下代码显示了如何运行上面的配置。
package com.www..cnmon; 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[] {"SpringBeans.xml"}); Customer cust = (Customer)context.getBean("CustomerBean"); System.out.println(cust); } }
输出
x:set 标签 x:set标签为XPath表达式的值设置一个变量。如果XPath表达式的值是boolean类型,则x:set将会设置一个java.lang.Boolea...
页面重定向当文档移动到一个新的位置时,通常会使用页面重定向,我们需要将客户端发送到这个新位置或者也可能是由于负载均衡,或...
Swift教程 -Swift类我们可以使用类在Swift中定义类型。类为我们提供了一种将相关信息和行为组合在一起的方法。要定义一个Swift类...
Swift if 语句Swift 条件语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。语法Swift 语言中 if 语句的语法:if boole...
可变性可变性,可以改变东西的能力,与其他语言相比它在 Rust 中有点不同。可变性的第一个方面是它的非默认状态:let x = 5;x = ...