Spring学习总结-01

       既然要学习Spring,那我们就要了解什么是Spring,Spring是轻量级的JavaEE开源开发框架,Spring有两大核心:IOC(控制反转)和 AOP(面向切面编程),今天我们先来学习IOC(控制反转)

      所谓IOC(控制反转)简单来说就是将new 对象的控制权交给Spring去做,而不是程序员自己new 对象,IOC通过容器实现,将对象与对象进行解耦,Spring容器在初始化时先读取配置文件,根据配置文件(即XML文档)创建与组织对象存入容器中,程序使用时再从IOC容器取出需要的对象

      那我们要在XML文档配置什么呢,主要是配置Bean,Bean的定义信息和实现是分离的,Bean的定义主要是通过pojo定义类,而实现是在XML文档中通过具体的Bean来实现,下面我们来看一个例子:

首先这是一个pojo的User类

package xy.kc2021.spring01.pojo;

public class User {
    private String name;

    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public User(){
        System.out.println("User的无参构造");
    }
    
    public  void show(){
        System.out.println("name: "+name);
    }
    
}

在XML中我们可以通过Bean new一个User类的对象并注入name属性的值 ,这个过程相当于平时我们写的 User user = new User();    user.setName("哈哈");

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="user" class="xy.kc2021.spring01.pojo.User">
        <property name="name" value="哈哈"></property>
    </bean>

</beans>

同时我们也可以通过读取XML中的Bean获得对象执行User类show()方法

package xy.kc2021.spring01;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import xy.kc2021.spring01.pojo.User;

public class Application {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        User user = (User) applicationContext.getBean("user");
        user.show();
    }
}

首先通过读取配置文件,再通过getBean的方法获取Bean,最后Bean中获取user(User类的对象)

最终输出结果为:

Spring学习总结-01

调用了无参构造,并且执行show()方法,可见,User类对象user的创建、属性的装配交给了Bean,也就是对象的创建、管理被Spring控制并管理

以后如果要实现不同的操作,只需要在XML配置文件中进行修改即可,不用修改程序。

总结:所谓的IOC(控制反转),就是对象由Spring创建、管理、装配

Spring学习总结-01

上一篇:02 Java基础-运算符


下一篇:[转] 理解python闭包