1、spring IOC的理解

IOC翻译成中文即控制反转的意思,它不是一种技术,而是一种设计思想。在java开发中'IOC'意味这我们将设计好的POJO类的控制权交给容器,而不是在我们程序中直接控制。传统java开发中,对象实例创建的控制权掌握的程序手中,也就是我们要得到一个对象实例,要在程序中手动的去new出一个对象。而IOC有一个容器专门来创建这些对象实例,这样对象实例的创建权便掌握在了IOC容器手中了。当程序中有了IOC容器后,该容器中的所有对象都会被自动创建实例,当程序员需要用到这些对象实例时,只需要去获取就可以,而不用创建出对象实例。

2、spring环境配置

1、spring官网下载STS

这是一个集成了spring环境的eclipse IDE,当然也可以通过在原有的eclipse中去配置,不过我还直接用STS方便一点
spring入门 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2、使用maven创建工程,添加spring所需的依赖

所需添加的依赖jar,只要添加下面三个就可以,其他依赖的,maven会自动帮我们添加

  • spring-context
  • commons-logging-api
  • log4j

spring入门 随笔 第2张

3、spring入门示例

1、创建POJO类

    public class User {
        private int id;
        private String username;
        private String password;
    
        public User() { 
            super();
            System.out.println("User类的构造器被调用了");
        }
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    
    }

2、创建spring bean配置文件

<?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">

    <!-- 
        1、一对bean标签即代表一个POJO类
        2、属性id有程序员设置,一般来说建议与类名相同
        3、属性class,即该类的全类名
     -->
    <bean id="user" class="priv.wfq.spring.model.User"></bean>
</beans>

3、创建测试类

public class UserTest {

    @Test
    public void testUserServiceImpl() {
        //获取IOC容器
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        
        //通过ApplicationContext对象的getBean方法来获取对象实例
        User user = (User) context.getBean("user");
        
        System.out.println(user);
    }
}

4、测试结果

1、获取IOC容器,并拿到User对象实例,并输出

我们可以发现,User对象的无参构造器被调用了,最后也输出了User对象实例

spring入门 随笔 第3张

2、只获取IOC容器

我们可以发现,程序中我们并没有去拿User对象实例,但是它的构造器仍然被调用了,说明IOC容器帮我们完成了User对象实例的工作
spring入门 随笔 第4张

4、总结

通过上述实验结果,我们可以得出IOC容器会帮我们去做对象实例化的工作,对象的控制权由程序到IOC容器。[]

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄