栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring-DI依赖注入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring-DI依赖注入

6.1、构造器注入

详见四、IOC创建对象

Spring-IOC创建对象的方式_xmosang的博客-CSDN博客

6.2、Set方式注入【重点】
  • 依赖注入

    • 依赖:bean对象的创建依赖于容器

    • 注入:bean对象中的所有属性,由容器来注入

【环境搭建】

  • pojo:

package com.mosang.pojo;
​
import lombok.Data;
​
import java.util.*;
​
@Data
public class Student {
{
    private String name;
    private Address address;
    private String[] book;
    private List hobby;
    private Map card;
    private Set games;
    private String girlfriend;
    private Properties properties;
​
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", address=" + address.toString() +
                ", book=" + Arrays.toString(book) +
                ", hobby=" + hobby +
                ", card=" + card +
                ", games=" + games +
                ", girlfriend='" + girlfriend + ''' +
                ", properties=" + properties +
                '}';
    }
}
    
    
@Data
public class Address {
private String name;
private int id;
}
  • xml配置



​
​
    
        
        
    
    
        
        
        
        
        
        
            
                西游记
                红楼梦
                水浒传
                三国演义
            
        
        
        
            
                写病毒
                读书
                玩游戏
            
        
        
        
            
                
                
            
        
        
        
            
                LOL
                CSGO
                CF
            
        
        
        
            
        
        
        
            
                root
                123456
            
        
    
  • 环境测试

import com.mosang.pojo.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
​
public class MyTest {
    public static void main(String[] args) {
       ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Student student = (Student) context.getBean("Student");
        System.out.println(student.toString());
    }
}
  • 结果

     

6.3、其他方式(命名空间) 

1. p-namespace:p命名空间 :

  • 官方解释:
  • XML Shortcut with the p-namespace

  •  使用:


    
	
    
    
    

2. c-namespace:c命名空间

  •  官方解释:
  •  XML Shortcut with the c-namespace

  •  使用:


​
    
    
    
    

注意

p-namespace和c-namespace不能直接使用,需要导入xml约束


测试:

    @Test
    public void ttt(){
        ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml");
        user user = context.getBean("user", user.class);
        user user1 = context.getBean("user", user.class);
        System.out.println(user==user1);
​
    }

6.4、bean的作用域

1. 单例模式(Spring默认)

       每次从容器中get,产生的对象都是同一个

ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml");
user user = context.getBean("user", user.class);
user user1 = context.getBean("user", user.class);
System.out.println(user==user1);

2. 原型模式:

​​​​​​​

每次从容器中get的时候,都会产生一个新的对象

ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml");
user user = context.getBean("user", user.class);
user user1 = context.getBean("user", user.class);
System.out.println(user==user1);

3. 其他模式:request、session、application只会在web开发中使用到

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号