spring学习01

spring学习01



1 项目配置

1.1 spring简介

spring框架
SSM框架之一,用来创建对象、管理对象、实现组件之间的解耦,也可以使用spring框架整合其他框架,实现简化代码提高开发效率。

1.1 spring的IOC

IOC——控制反转(Inversion of Control),将对象的创建和管理由spring框架实现,以前由自己创建和管理对象(用new创建对象)

1.2 spring优点

简化代码,提高开发效率
能够实现IOC
集成其他框架
支持AOP
解耦:降低组件之间的耦合(耦合度:高内聚,低耦合)

1.3 实现IOC

新建maven项目quickstart,公司域名com.fk
在这里插入图片描述
导入spring框架包,包含spring框架和springMVC框架
在这里插入图片描述
在这里插入图片描述
补齐目录
在这里插入图片描述
resources目录下新建spring配置文件spring.xml

2.1 DI

依赖注入:将spring容器中的对象或者是属性的值,通过特定的方式,注入(引用)到别的组件中

2.2 依赖注入方式:

2.2.1 set注入

新建Teacher类,将id、name、salry属性生成set和toString方法

PS: toString()方法属于Object类方法,在Object类中toString()方法默认输出对象内存地址值,子类重写父类的toString()可以查看类的属性值(类属性的具体信息)。

package com.fk.pojo;

public class Teacher {
    
    
    private  Integer id;
    private String name;
    private  Integer salry;

    public void setId(Integer id) {
    
    
        this.id = id;
    }

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

    public void setSalry(Integer salry) {
    
    
        this.salry = salry;
    }

    @Override
    public String toString() {
    
    
        return "Teacher{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", salry=" + salry +
                '}';
    }
}

在resource目录下的spring.xml内用bean

<!--测试Spring通过set方法将属性注入到Teacher类的属性中-->
    <bean id="t" class="com.fk.pojo.Teacher">
        <property name="id" value="10"></property>
        <property name="name" value="zhangsan"></property>
        <property name="salry" value="3000"></property>
    </bean>

在测试里新建TestSpring类里测试Spring通过set方法将属性注入到Teacher类的属性中

//测试Spring通过set方法将属性注入到Teacher类的属性中
    @Test
    public void test2(){
    
    
        //加载spring框架配置文件
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
        //从Spring容器里获取Teacher对象
        Teacher t = ac.getBean("t", Teacher.class);
        System.out.println(t);
    }

2.2.2 构造器注入

2.2.3 集合注入

2.2.3.1 list

2.2.3.2 map

2.2.3.3 set

猜你喜欢

转载自blog.csdn.net/qq_43881663/article/details/113928857