spring依赖注入(dependency injection)

spring依赖注入包括两个方面:

      依赖:指bean对象创建依赖于容器。bean对象的依赖资源

      注入:bean对象的依赖资源由容器来设置和装配

Spring的注入有两类:

1、构造器的注入:使用constructor-arg

  
         
           
2、setter注入

要求被注入的属性,必须有set方法,set方法生成的方法名,由set+属性(首字母大写),如果属性是boolean类型,没有get方法,是is方法。

a、常量注入


	

b、bean的注入



	
	


Address.java

public class Address {
	private String address;

	public void setAddress(String address) {
		this.address = address;
	}

	public String getAddress() {
		return address;
	}
}

Student.java

public class Student {
	private String name;
	private Address addr;
	public void setName(String name) {
		this.name = name;
	}
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	public void show(){
		System.out.println("name:"+name+" addr="+addr.getAddress());
	}
}

3、数组注入

beans.xml配置


      


	
	
	
            
		傲慢与偏见
		仲夏夜之梦
		悲惨世界
	    
	
Student.java

public class Student {
	private String name;
	private Address addr;
	private String[] books;
	public void setName(String name) {
		this.name = name;
	}
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	public void setBooks(String[] books) {
		this.books = books;
	}
	public void show(){
		System.out.println("name:"+name+" addr:"+addr.getAddress());
		System.out.println("books=");
		for(int i=0;i

4、list注入

beans.xml配置


      


      
      
      
	   
		 傲慢与偏见
		 仲夏夜之梦
		 悲惨世界
	   
	
	
	   
		 羽毛球
		 乒乓球
		 排球
	   
     
Student.java

public class Student {
	private String name;
	private Address addr;
	private String[] books;
	private List hobbies;
	public void setName(String name) {
		this.name = name;
	}
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	public void setBooks(String[] books) {
		this.books = books;
	}
	public void setHobbies(List hobbies) {
		this.hobbies = hobbies;
	}
	public void show(){
		System.out.println("name:"+name+" addr:"+addr.getAddress());
		System.out.println("books=");
		for(int i=0;ibeans.xml配置添加


	
	    
	    
		工商银行
	        32119876545
	      
	

Student.java

public class Student {
	private String name;
	private Address addr;
	private String[] books;
	private List hobbies;
	private Map cards;
	public void setName(String name) {
		this.name = name;
	}
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	public void setBooks(String[] books) {
		this.books = books;
	}
	public void setHobbies(List hobbies) {
		this.hobbies = hobbies;
	}
	public void setCards(Map cards) {
		this.cards = cards;
	}
	public void show(){
		System.out.println("name:"+name+" addr:"+addr.getAddress());
		System.out.println("books=");
		for(int i=0;i


   
	开心消消乐
	宾果消消消
   
Student.java

public class Student {
	private String name;
	private Address addr;
	private String[] books;
	private List hobbies;
	private Map cards;
	private Set games;
	public void setName(String name) {
		this.name = name;
	}
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	public void setBooks(String[] books) {
		this.books = books;
	}
	public void setHobbies(List hobbies) {
		this.hobbies = hobbies;
	}
	public void setGames(Set games) {
		this.games = games;
	}
	public void setCards(Map cards) {
		this.cards = cards;
	}
	
	public void show(){
		System.out.println("name:"+name+" addr:"+addr.getAddress());
		System.out.println("books=");
		for(int i=0;i


Student.java添加属性

private String wife;

8、properties注入


	
		20171050
		
		大一
	
Student.java添加变量

private Properties info;

Test测试类

public class Test {
	public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
		Student stu=(Student) context.getBean("student");
		stu.show();
	}
}
测试所有代码运行结果,如图:

spring依赖注入(dependency injection)_第1张图片

9、p命名空间注入

需要在beans.xml配置头文件中加入

xmlns:p="http://www.springframework.org/schema/p"


beans.xml配置文件中添加


	

新建User.java

public class User {
	private String name;
	private int age;
	public void setName(String name) {
		this.name = name;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "User[name="+name+",age="+age+"]";
	}

}
测试类改为

public class Test {
	public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
		User u=(User) context.getBean("user");
		System.out.println(u);
      }
}

测试结果:

User[name=小红,age=12]

你可能感兴趣的:(spring)