【Spring】IOC快速入门

文章目录

  • 1. Spring简介
  • 2. IOC快速入门

1. Spring简介

Spring是一个开放源代码的Java SE/EE一站式轻量级开源框架,由Rod Johnson发起并创立。其核心是IOC(控制反转)和AOP(面向切面编程),使得开发者可以将对象创建的权利交给Spring容器来进行管理。同时,Spring还提供了功能强大的持久层解决方案,例如Spring的JDBC、ORM等持久层框架。

IOC的实现主要依赖于“依赖注入”(Dependency Injection,简称DI)和“依赖查找”(Dependency Lookup)两种方式。在Java开发中,IOC的核心概念是将对象创建的权利交给一个被称为IoC容器的程序来进行管理,而不是传统的在对象内部直接控制。这样能够降低代码之间的耦合度,提高程序的灵活性和可维护性。

2. IOC快速入门

首先要创建Maven项目
【Spring】IOC快速入门_第1张图片
pom.xml中导入相关依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.29</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.29</version>
        </dependency>
    </dependencies>

然后需要在resources目录中创建Spring的配置文件
【Spring】IOC快速入门_第2张图片
【Spring】IOC快速入门_第3张图片

假设有一个Student类,有age和name两个成员变量,提供对应的get和set方法,并重写toString()方法

public class Student {
    private int age;
    private String name;

    public Student() {
    }

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

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

接下来在Spring的配置文件中设置Bean对象
在这里插入图片描述

    public static void main(String[] args) {
        // 创建容器
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring-config.xml");
        // 获取对象
        Student student = (Student) context.getBean("student");

        System.out.println(student.toString());
    }

【Spring】IOC快速入门_第4张图片
可以看到通过Bean标签的中的id,Student类对象成功创建出来了

⭐其实简单来说 IOC就是不直接new对象,而是从容器中取出来.

你可能感兴趣的:(#,Spring,spring,java,后端)