• Spring注入方式(1)


          Spring支持3种依赖注入方式,分别为属性注入、构造器注入和工厂方法注入(很少使用,不推荐),下面分别对属性注入和构造器注入详细讲解。

    1、常量注入

      属性注入是通过setter方法注入Bean的属性值,属性注入使用<property>元素,使用name属性指定Bean的属性名称,使用value属性或者<value>子节点指定属性值。

    beans.xml文件主要内容

    <!--通过属性注入方式配置  -->
    <bean id="person" class="com.spring.Person">
        <property name="name" value="Tom"></property>
        <property name="age" value="29"></property>
    </bean>

    Person.java

    package com.spring;
    public class Person {
    	private String name;
    	private int age;
    	private double height;
    	private double weight;
    	
    	public Person(String name, int age, double height, double weight) {
    		super();
    		this.name = name;
    		this.age = age;
    		this.height = height;
    		this.weight = weight;
    	}
    	
    	public Person() {
    		super();
    	}
    	
    	
    	public double getHeight() {
    		return height;
    	}
    
    	public void setHeight(double height) {
    		this.height = height;
    	}
    
    	public double getWeight() {
    		return weight;
    	}
    
    	public void setWeight(double weight) {
    		this.weight = weight;
    	}
    
    	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;
    	}
    
    	@Override
    	public String toString() {
    		return "Person [name=" + name + ", age=" + age + ", height=" + height + ", weight=" + weight + "]";
    	}
    	
    	
    	
    	
    }
    

    Main.java

    package com.spring;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
    	public static void main(String[] args) {
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
    		Person person = (Person) ctx.getBean("person");
    		System.out.println(person);
    } }

    运行结果截图如下:

    以上就是属性注入的例子

    2、构造器注入

    2.1 按照索引匹配

    beans.xml

    <bean id="person1" class="com.spring.Person">
    		<constructor-arg value="Tim" index="0"></constructor-arg>
    		<constructor-arg value="30" index="1"></constructor-arg>
    		<constructor-arg value="30" index="3"></constructor-arg>
    		<constructor-arg value="65" index="2"></constructor-arg>
    		
    </bean>
    

    结果:

    2.2 按类型匹配

    beans.xml

    1 <bean id="person2" class="com.spring.Person">
    2         <constructor-arg value="34" type="int"></constructor-arg>
    3         <constructor-arg value="175" type="double"></constructor-arg>
    4         <constructor-arg value="Jerry" type="java.lang.String" ></constructor-arg>
    5         <constructor-arg value="70" type="double"></constructor-arg>
    6     </bean>
    View Code

    结果:

  • 相关阅读:
    C#/.NET CTS和CLS:公共类型系统和公共语言规范
    MongoDB分布式集群架构(3种模式)
    Elastic Search 入门
    转:计算机视觉部分会议/期刊名称缩写
    神经网络模型的参数量和FLOPs的计算,torchstat,thop,循环神经网络RNN
    latex自己调配颜色
    latex图像和表格手动设置位置(清除自动寻找位置)
    转:图像泊松融合
    latex调整表格行高、列宽和表格整体的左右宽度
    转:目标检测评价标准mAP
  • 原文地址:https://www.cnblogs.com/Hxinguan/p/5935893.html
Copyright © 2020-2023  润新知