IOC容器详解

1.IOC的概念

控制反转,把对象创建和对象之间的调用过程,交给Sprng进行管理

使用IOC的目的:为了降低耦合度

2.IOC底层原理

底层用到三部分:xml解析、工厂模式、反射

IOC容器详解_第1张图片

 IOC容器详解_第2张图片

IOC容器详解_第3张图片

 3.IOC操作Bean管理

  • 什么是Bean管理

Bean管理指的是两个操作:Spring创建对象和Spring注入属性

  • Bean管理操作有两种方式

基于xml配置文件方式实现

    1、 基于xml方式创建对象


 

 (1)在Spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建

(2)在bean标签有很多属性,介绍常用的属性

*id属性:唯一标识

 *class属性:类全路径(包类路径)

(3)创建对象时候,默认也是执行午餐构造方法完成对象创建

2、基于xml方式注入属性

(1)DI:依赖注入,就是注入属性

3、第一种注入方式:使用set方法进行注入

(1)创建类,定义属性和对应的set方法

public class Book {
    private String bookName;
    private String bookAuthor;

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public void setBookAuthor(String bookAuthor) {
        this.bookAuthor = bookAuthor;
    }
    public void  testDemo(){
        System.out.println("bookName:"+bookName);
        System.out.println("bookAuthor:"+bookAuthor);
    }
    
}

(2)在Spring配置文件配置对象创建,配置属性注入

 
        
        
        
        
          
    

(4)第二种注入方式:使用有参数构造进行注入

(1)创建类,定义属性,创建属性对应有参数构造方式

public class Orders {
    private String name;
    private String address;

    public Orders(String name, String address) {
        this.name = name;
        this.address = address;
    }
    public void testOrder(){
        System.out.println("name:"+name);
        System.out.println("address:"+address);
    }
}

(2)在Spring配置文件中进行配置

 
        
        
    

5、P名称空间注入(了解)

(1)使用P名称空间注入,可以简化基于xml配置方式

第一步 添加P名称空间在配置文件中

第二步 进行属性注入,在bean标签里面进行操作

   
 

6、通过xml注入其他类型属性

(1)null值


  

(2)含有其他符号的属性值


   >]>

7、通过xml注入属性-外部bean

(1)创建两个类service和dao类

package com.ljx.test.service;

import com.ljx.test.Dao.UserDao;

public class UserService {
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void add(){
        userDao.update();
        System.out.println("add............");
    }
}

package com.ljx.test.Dao;

public interface UserDao {
    public void update();
}
package com.ljx.test.Dao.Impl;

import com.ljx.test.Dao.UserDao;

public class UserDaoImpl implements UserDao {
    @Override
    public void update() {
        System.out.println("update...........");
    }
}

(2)在service调用dao里面的方法

 (3)在spring配置文件中进行配置




    
        

        
    
    

8.注入集合属性

(1)创建一个类声明集合属性

package com.learn.spring5.collectiontype;

import javax.sound.midi.Soundbank;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Stu {
    //注入数组属性
    private String[] course;
    //注入list集合属性
    private List list;
    //注入map集合属性
    private Map map;
    //注入set集合属性
    private Set set;

    public void setCourse(String[] course) {
        this.course = course;
    }

    public void setList(List list) {
        this.list = list;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public void setSet(Set set) {
        this.set = set;
    }
    public void add(){
        System.out.println(Arrays.toString(course));
        System.out.println(list);
        System.out.println(map);
        System.out.println(set);
    }
}

(2)在Spring配置文件中配置


    

        
            
                Java
                Pyhton
            
        

        
            
                99
                100
            
        

        
            
                
                
            
        

        
            
                李四
                张三
            
        
    

(3)注入list对象集合


            
                
                
            
        

    
        
    
    
        
    

(4)提取list集合注入

使用util名称空间



提取list集合属性注入


    
        易筋经
        九阳神功
        降龙十八掌
    
    
        
    

你可能感兴趣的:(Java后端,容器,运维,java,spring)