zoukankan      html  css  js  c++  java
  • 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

    结果:

  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/Hxinguan/p/5935893.html
Copyright © 2011-2022 走看看