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

2.spring-ioc

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

2.spring-ioc

Spring IOC 1. IOC --控制反转

IOC全称为 Inverse Of Control,表示控制反转。指的是程序员使用硬编码创建的对象转为由Spring容器来创建,对于对象生命周期的控制交给Spring容器来管理。控制反转解决了具有依赖关系的组件之间的强耦合,使得项目形态更加稳健

2. IOC的使用

spring ioc的使用需要依赖于spring生态中的一些模块,如bean、core…

2.1 依赖导入

想要使用spring ioc的全部功能可以导入下方依赖:


    org.springframework
    spring-context
    5.3.11

2.2 创建需要ioc管理的类
public class User {
}
2.3 ioc配置文件

这里命名为:applicationContext.xml



    
    
    
    

2.4 测试方法
@Test
public void iocTest(){
    //应用上下文  类路径下的xml
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    //根据Bean的名称获取类的对象
    User user = context.getBean("user", User.class);
    System.out.println(user);
}
3. DI — 依赖注入

在将对象交由ioc容器进行管理时,常常还需要为对象进行赋值,这就需要使用DI

DI全称为Dependency Injection,表示依赖注入。指的是在Spring创建对象的同时,为其属性赋值

首先给类中添加属性

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String username;
    private String password;
    private Map map;
    private double[] c;
    private UserInfo[] infos;
    private List list;
    private Properties props;
    private UserInfo info;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo {

    private String name;
    private String sex;
    private int age;
    private String hobby;
}
3.1 常见注入方式

常见的依赖注入有两种方式:set注入和构造方法注入

3.1.1 构造方法注入

构造注入指的是通过构造放入为属性注入值。


    
    
    
    
    

注:按照构造方法出现参数的顺序书写,index从0开始

3.1.2 set方法注入(最常用)

set方法注入,通过寻找property标签中的name属性值,首字母大写加上set,通过反射进行调用(setName())注意,并不是直接通过属性名进行赋值


    
    
    
    

4.1 注入各种类型的参数

(以set注入方式)

4.1.1 注入常用数据类型

常用数据类型指8种基本数据类型以及对应的包装类、日期类型、字符串等。在注入时,可以使用value值直接写入“”之间。

注:Date类型需要使用默认的字符串格式yyyy/MM/dd

4.1.2 注入引用数据类型

对于引用数据类型,spring 提供了两种注入值的方式。

一种是通过 ref 属性来引用 已经定义在容器中的bean 对象从而进行值的注入;

一种是通过 property 标签下嵌套bean 标签来创建一个 bean 对象进行值的注入。





    

4.1.3 注入数组类型

注入数组类型需要在property 标签下嵌套array标签

示例:

数组中为基本数据类型


    
        20
        30
        40
    

注:为引用数据类型的数组时,参照4.1.2进行注入,可以使用bean标签嵌套,在使用引用ref标签时,略有不同,存在单独的ref标签。

示例:


    
        
    

综合示例:


    
        
        
        
        
        
        
        
    

4.1.4 注入List集合对象

注入集合对象与数组类似,需要使用list标签。


    
        
        
        
        
        aaaa
        bbbb
    

4.1.5 注入Set集合对象

示例:


    
        
        
        
        
        李四
        王五
    

4.1.6 注入Map集合对象

注入map对象,需要使用到map标签和其下的entry标签(map底层就是一个entry的对象数组)

示例:


    
        
        
        
        
        
            
        	
        
    

4.1.7 注入Properties对象

注入properties对象需要使用props标签


    
        硕硕
        
    

注:properties中存放的键值都是String类型。

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

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

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