举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > spring 内部bean Spring教程 - Spring内部Bean注入

spring 内部bean Spring教程 - Spring内部Bean注入

2023-06-14 20:18 Spring教程

spring 内部bean Spring教程 -  Spring内部Bean注入

spring 内部bean Spring教程 - Spring内部Bean注入

spring 内部bean

Spring教程 - Spring内部Bean注入


以下部分显示如何使用Spring内部bean。

内在Java豆

在下面我们有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 + "]";
  }  
}


参考内部Java Bean

将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>

Download Java2s_Spring_Ref_Attr.zip

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>

Download Java_Spring_Nest_Bean.zip

以下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>

Download Java2s_Spring_Inner_Bean_Constructor.zip

以下代码显示了如何运行上面的配置。

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);
    }
}

输出



阅读全文
以上是编程学为你收集整理的spring 内部bean Spring教程 - Spring内部Bean注入全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部