zoukankan      html  css  js  c++  java
  • Spring之构造方法注入

    Talk is checp,show you the code

    1.新建实体类Car,并创建两个构造器,其实toString方法是为了测试用的,方便学习,在具体生产业务中没谁会闲的没事建造一个toString方法

    public class Car {
        
        private String brand;
        private String corp;
        private double price;
        private int maxSpeed;
        public Car(String brand, String corp, double price) {
            this.brand = brand;
            this.corp = corp;
            this.price = price;
        }
        public Car(String brand, String corp, int maxSpeed) {
            this.brand = brand;
            this.corp = corp;
            this.maxSpeed = maxSpeed;
        }
        @Override
        public String toString() {
            return "Car [brand=" + brand + ", corp=" + corp + ", price=" + price
                    + ", maxSpeed=" + maxSpeed + "]";
        }
    }

    2.新建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"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
        
        <bean id="car" class="com.auguigu.spring.beans.Car">
            <constructor-arg value="Audi" type="java.lang.String"></constructor-arg>
            <constructor-arg value="Shanghai" type="java.lang.String"></constructor-arg>
            <constructor-arg value="30000" type="int"></constructor-arg>
        </bean>
        
        <bean id="car2" class="com.auguigu.spring.beans.Car">
            <constructor-arg value="BMW" type="java.lang.String"></constructor-arg>
            <constructor-arg value="BeiJing" type="java.lang.String"></constructor-arg>
            <constructor-arg value="300.00" type="double"></constructor-arg>
        </bean>
    </beans>

    分别为两个构造器注入不同的属性值,当然是根据字段的属性去注入的,Spring会自动匹配具有相同属性的字段然后进行赋值

    3.新建测试类Main

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
        public static void main(String[] args) {
            ApplicationContext ctx = new ClassPathXmlApplicationContext("./applicationContext.xml");
            Car car = (Car) ctx.getBean("car");
            System.out.println(car);
            car = (Car) ctx.getBean("car2");
            System.out.println(car);
        }
    }

    结束语

    如果字面值包含特殊字符

    <constructor-arg type="java.lang.String">

            <value><![CDATA[<shanghai*>]]></value>

    </constructor-arg>

    就要用上述来进行注入

  • 相关阅读:
    [linux内存]伙伴系统学习笔记(二)--内存系统初始化
    [linux内存]伙伴系统学习笔记(一)——概念
    Android 快速开发框架Afinal
    微信公众平台搭建
    Web Eclipse不识别HttpServlet
    Android 监听来电和去电状态
    Android 监听程序的安装和卸载
    Android 被忽略的UI检视利器:Hierarchy Viewer .
    Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
    Android 系统手机端抓包方法
  • 原文地址:https://www.cnblogs.com/sdnu-zhang/p/8527336.html
Copyright © 2011-2022 走看看