Spring的配置和依赖注入(DI)

1. Spring的配置:Bean的配置其实就是对某个实体类的配置,由spring接管和控制。在spring中配置类的属性以及引用。

public class User {

    private String name;

    public String getName() {
        return name;  //name 要与properties中的name="name"相同;
    }

    public void setName(String name) {
        this.name = name;
    }
    public void show(){
        System.out.println("name:"+name);
    }
}




    

            
     



    
    
    


    

        
    


 

团队的合作通过import来实现 .

细节:

Spring的配置和依赖注入(DI)_第1张图片

 

Spring的配置和依赖注入(DI)_第2张图片

实体类User中的name属性,在配置Bean的properties属性时,对应的name的值要与Setxxx()方法后面的小写名字相同如setName ===>name;

Spring的配置和依赖注入(DI)_第3张图片

Spring的配置和依赖注入(DI)_第4张图片

同样的,在配置UserServiceImpl时也需要相同。

bean的作用域:scope="xxx" ;最长用的是前两种,

singleton:单例: 只能实例化一次,创建一个对象.

prototype:多例,可以多次实例化同一个对象bean ,即可以new多个新得对象.

Spring的配置和依赖注入(DI)_第5张图片

2. 使用IOC创建对象的两种方法:

1.使用无参构造:

Spring的配置和依赖注入(DI)_第6张图片

 Bean的配置:

Spring的配置和依赖注入(DI)_第7张图片

测试:

Spring的配置和依赖注入(DI)_第8张图片

 Spring的配置和依赖注入(DI)_第9张图片

总结:先使用无参构造器进行实例化类,然后再调用方法。

2.使用有参构造:

Spring的配置和依赖注入(DI)_第10张图片

 配置Bean:

Spring的配置和依赖注入(DI)_第11张图片

测试: 

Spring的配置和依赖注入(DI)_第12张图片

 Spring的配置和依赖注入(DI)_第13张图片

3. 依赖注入(DI)

  • 依赖注入(Dependency Injection,DI)。

  • 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .

  • 注入 : 指Bean对象所依赖的资源 , 由spring容器来设置和装配 

1. 构造器注入(上面的例子)

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

实体类:

 public class Address {
 
     private String address;
 
     public String getAddress() {
         return address;
    }
 
     public void setAddress(String address) {
         this.address = address;
    }
 }
package com.spring.pojo;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

/**
 * @author Lenovo
 * @date 2023/4/8
 * @time 13:49
 * @project SpringDemo01
 **/
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;

    public void setName(String name) {
        this.name = name;
    }

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

    public void setBooks(String[] books) {
        this.books = books;
    }

    public void setHobbys(List hobbys) {
        this.hobbys = hobbys;
    }

    public void setCard(Map card) {
        this.card = card;
    }

    public void setGames(Set games) {
        this.games = games;
    }

    public void setWife(String wife) {
        this.wife = wife;
    }

    public void setInfo(Properties info) {
        this.info = info;
    }

    public void show(){
        System.out.println("name="+ name
                + ",address="+ address.getAddress()
                + ",books="
        );
        for (String book:books){
            System.out.print("<<"+book+">>\t");
        }
        System.out.println("\n爱好:"+hobbys);

        System.out.println("card:"+card);

        System.out.println("games:"+games);

        System.out.println("wife:"+wife);

        System.out.println("info:"+info);

    }
}

Bean的配置:applicationcontext.xml

使用各种注入方式:常量 map  list  set  properties  数组等注入属性的方式







    
        
    



    

        

        
        

            
                西游记
                红楼梦
                水浒传
            
        
        

            
                听歌
                看电影
                爬山
            
        

        

            
                
                
            
        

        
            
            
                LOL
                王者荣耀
                吃鸡
            
        

        

            
        
        
        

            
                20190604
                
                小航
            
        
    

测试:

Spring的配置和依赖注入(DI)_第14张图片

 Spring的配置和依赖注入(DI)_第15张图片

你可能感兴趣的:(SpringBoot,spring,mybatis,spring,boot)