zoukankan      html  css  js  c++  java
  • spring之在配置Bean时如何关联不同的Bean

    Car.java

    package com.gong.spring.beans;
    
    public class Car {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Car [name=" + name + "]";
        }
        
    }

    Student.java

    package com.gong.spring.beans;
    
    public class Student {
        private String name;
        private int age;
        private double score;
        private Car car;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public double getScore() {
            return score;
        }
        public void setScore(double score) {
            this.score = score;
        }
        public Car getCar() {
            return car;
        }
        public void setCar(Car car) {
            this.car = car;
        }
        @Override
        public String toString() {
            return "Student [name=" + name + ", age=" + age + ", score=" + score + ", car=" + car + "]";
        }
        
        
    }

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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.xsd">
        
        <bean id="car" class="com.gong.spring.beans.Car">
            <property name="name" value="baoma"></property>
        </bean>
        
        <bean id="student" class="com.gong.spring.beans.Student">
            <property name="name" value="tom"></property>
            <property name="age" value="12"></property>
            <property name="score" value="98.00"></property>            
            <property name="car" ref="car"></property>
        </bean>
        
    </beans>

    Main.java

    package com.gong.spring.beans;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
        public static void main(String[] args) {
            //1.创建spring的IOC容器对象
            ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
            //2.从容器中获取Bean实例
            Student student = (Student) ctx.getBean("student"); 
            System.out.println(student.toString());
        }
    }

    输出:

    当然,也可以这么写:

            <property name="car"> 
                <ref bean="car"/>
            </property>

    我们也可以在bean的内部配置相应的Bean,这个Bean就是一个内部bean,不能被外部使用。

            <property name="car">
                <bean class="com.gong.spring.beans.Car">
                    <property name="name">
                        <value>baoma</value>
                    </property>
                </bean>
            </property>
  • 相关阅读:
    [算法]外部排序
    [笔试]华为编程大赛题目
    [C++]字符串处理方法(STL与C风格)
    如何动态建立VFP能够打开的中文字段 dbf 表 北极星
    使用 VCL BDE 组件动态创建数据库表 北极星
    如何用Table控件判断数据库是否为空 北极星
    DNGuard HVM副产品(元数据名称编辑器)
    常见dotNet加密保护工具分析介绍
    DNGuard HVM 试用版 RC1 发布
    [转载]Modifying IL at runtime
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12149867.html
Copyright © 2011-2022 走看看