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>
  • 相关阅读:
    visual C sharp express from 360 free download
    Druid 在小米公司部分技术实践-博客-云栖社区-阿里云
    公司业务-猫眼知健康
    Sculptor
    可译网 —— 翻译可以更简单
    牛客网-专业IT笔试面试备考平台,最全C++JAVA前端求职题库,全面提升IT编程能力
    设置Redis的LRU策略
    springboot中使用aop技术
    elasticSearch的部署和使用
    jvm原理和代码运行的过程
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12149867.html
Copyright © 2011-2022 走看看