Spring-06-依赖注入(DI)

依赖注入(DI)

1 构造器注入

(前面已经说过了)

2 Set方式注入(重点)

  • 依赖注入:Set注入!
    • 依赖:bean对象的创建依赖于容器;
    • 注入:bean对象的所有属性,由容器来注入;

环境搭建

  1. 复杂类型
public class Address {
    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
  1. 真实测试对象
public class Student {
    private String name;
    private Address address;
    private String[] books;
    private List hobbys;
    private Map card;
    private Set games;
    private String wife;
    private Properties info;
    }
  1. beans.xml


    
        
        
    

  1. 测试类
@Test
public void test1(){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    Student student = (Student) context.getBean("student");
    System.out.println(student.getName());
}

完善注入信息:



    

    
        
        
        
        
        
        
            
                红楼梦
                西游记
                水浒传
                三国演义
            
        
        
        
            
                听歌
                敲代码
                看电影

            
        
        
        
            
                
                
                
            
        
        
        
            
                LOL
                COC
                BOB
            
        
        
        
            
        
        
        
            
                1601400105
                
                root
                123456
            
        
    

3 拓展方式注入

我们可以使用p命名空间和c命名空间注入。

官方解释:

在这里插入图片描述

使用:




    
    

    
    
    


测试:

@Test
public void test2(){
    ApplicationContext context = new ClassPathXmlApplicationContext("userebeans.xml");
    User user = context.getBean("user2", User.class);
    System.out.println(user);
}

注意点:

需要导入命名空间约束!

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

4 Bean的作用域(Scope)

在这里插入图片描述
  1. 单例模式(Spring默认机制)

  1. 原型模式:每次从容器中get的时候,都会产生一个新对象
在这里插入图片描述

  1. 其余的request、session、application,这些个只能在web开发中使用!

你可能感兴趣的:(Spring-06-依赖注入(DI))