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

Spring注入详解

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

Spring注入详解

Spring注入详解

文章目录
  • Spring注入详解
    • 1. 什么是注入
    • 2. 如何进行注入
    • 3. Set注入
      • 3.1 JDK内置类型
        • 3.1.1 String+8种基本类型
        • 3.1.2 数组
        • 3.1.3 Set集合
        • 3.1.4 List集合
        • 3.1.5 Map集合
        • 3.1.6 Properites
        • 3.1.7 复杂的JDK类型
      • 3.2 用户自定义类型
        • 3.2.1 第一种方式
        • 3.2.2 第二种方式
      • 3.3 Set注入简化写法
        • 3.3.1 基于属性简化
        • 3.3.2 基于p命名空间简化
    • 4. 构造注入
      • 4.1 使用步骤
      • 4.2 构造方法重载
        • 4.2.1 参数个数不同时
        • 4.2.2 构造参数个数相同时
    • 5. 注入总结

1. 什么是注入

简单来讲,就是通过Spring工厂及配置⽂件,为所创建对象的成员变量赋值。而这个注入的方式又有很多种。接下来的文章会一一介绍。

通过编码的方式,为成员变量进行赋值,存在耦合,有了注入就可以很大程度上减少耦合。

2. 如何进行注入
  • 为类的成员变量提供get、set方法
  • 编写Spring的配置文件

    
        1
    
    
    	Tom
    

3. Set注入

Spring通过底层调用对象属性对应的set方法,完成成员变量的赋值,这种方式我们也称之为set注入。

针对于不同类型的成员变量,在标签,需要嵌套其他标签
 
	...

3.1 JDK内置类型 3.1.1 String+8种基本类型
Tom
123
1.5
...
3.1.2 数组

    Tom
    Jerry
    Rose

3.1.3 Set集合
 
    111 
    222
    333


或是采用级联赋值的方式


    
3.1.4 List集合

    111
    222


 
	
3.1.5 Map集合
注意: map -- entry -- key有特定的标签


    
        
            Tom
        
        123
    
    
    
        
            Jerry
        
        

3.1.6 Properites

Properties类型特殊的Map key=String value=String


    value1
    value2

3.1.7 复杂的JDK类型

如日期类:Date

需要程序员自定义类型转换器,处理。

3.2 用户自定义类型 3.2.1 第一种方式
  • 为类的成员变量提供set、get方法

  • 配置文件中进行配置(赋值)

    
        
            
        
    
    
3.2.2 第二种方式

第一种方式存在一些问题:

  • 配置文件代码冗余
  • 被注入的对象(UserDAO),多次创建,浪费(JVM)内存资源

通过第二种方式可以进行优化:

  • 同样需要提供set、get方法

  • 在配置文件中进行配置

    
        
            
        
    
    
    
    
3.3 Set注入简化写法 3.3.1 基于属性简化

JDK基本类型和String类型:

原版:

	Tom


简化后:

注意:value属性 只能简化8种基本类型+String 注入标签

用户自定义类型:

原版:

    
        
    




简化后:

    



3.3.2 基于p命名空间简化

使用p命名空间需要现在文件头部引入p命名空间。

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

JDK基本类型和String类型:

原版:

    
        1
    
    


简化后:

用户自定义类型:

原版:

    


简化后:



4. 构造注入

Spring通过反射调用构造方法注入值

4.1 使用步骤
  • 提供有参的构造方法

    public class User {
        private int id;
        private String username;
    
        public User(int id, String username) {
            this.id = id;
            this.username = username;
        }
    }
    
  • 编写Spring配置文件

    
        
            123
        
        
            Tom
        
    
    
4.2 构造方法重载 4.2.1 参数个数不同时
通过控制标签的数量进⾏区分
4.2.2 构造参数个数相同时
通过在标签引⼊type属性 进⾏类型的区分 
5. 注入总结
  • 注入实际上就是Spring读取配置文件通过反射的方式创建对象的同时为对象内的属性赋值。
  • 在实际开发过程中用set注入还是构造方法注入呢?
    • 实际上是set注入使用的更多,原因有两点:
      • 构造注入比较麻烦。
      • Spring框架的底层也使用了大量的set注入。

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

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

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