Spring框架学习02

一、spring的IOC技术

在这里插入图片描述

1、IOC介绍

IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。IOC它是一种思想,而不仅仅是技术。

举例说明:

​ 在JavaWEB中进行编程的时候,一般都是在WEB层的代码中创建Service层类的对象,然后再Service层的类中创建Dao层类的对象,完成相关的方法调用。

​ WEB层的代码和Service层代码严重耦合。这种写法会导致如果Service层的代码有改动,可能会导致web层代码跟着改动。

// web层:
public class UserServlet{
    UserService userService = new UserService();   
}  
//	service层
public class UserService{
    UserDao userDao = new UserDao();
}
// dao层
public class UserDao{
    
}

IOC编程思想:

​ 将项目中的所有对象全部统一交给Spring框架进行管理, 不管在是在哪一层编写代码,只要需要对象,直接找Spring框架获取即可。对象的创建、维护、销毁等动作全部都Spring框架完成。我们编程时只需要关注自己项目的逻辑代码,而具体对象一些创建、销毁等事情不用再操心。

// web层:
public class UserServlet{
    //	从Spring容器获取到UserService对象,注入给当前的这个引用
    UserService userService;   
}  
//	service层
public class UserService{
    //	从Spring容器获取到UserDao对象,注入给当前的这个引用
    UserDao userDao;
}
// dao层
public class UserDao{
    
}

Spring会将UserServlet、UserService、UserDao的对象统一创建和维护。

2、IOC管理对象

将程序的所有对象创建、维护、销毁的动作全部交给Spring去处理,而程序中仅仅只是使用对象而已。

2.1、编写spring的配置文件

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        Spring管理对象,IOC技术,
        在spring的配置文件中使用bean标签来进行配置
    -->
    <bean id="userDao" class="com.neusoft.dao.UserDao" />
    <bean id="userService" class="com.neusoft.service.UserService" />

</beans>

2.2、编写测试类

public class SpringTest {
    @Test
    public void demo1(){
        //  需要获取到Spring的核心对象
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        // 可以去使用Spring管理的任何对象
        UserDao userDao = (UserDao) context.getBean("userDao");
        // 调用获取到的对象中的方法
        userDao.findUser();
        userDao.addUser();

    }
}

3、在类中注入别的类的对象(DI)

需要在类中添加相关的属性,然后提供setXxx方法,在spring的配置文件中通过配置将对象注入

在这里插入图片描述
在这里插入图片描述

@Test
public void demo2(){
    //  需要获取到Spring的核心对象
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    // 可以去使用Spring管理的任何对象
    UserService userService = (UserService) context.getBean("userService");
    // 调用获取到的对象中的方法
    userService.findUser();
    userService.addUser();

}

DI:dependency injection 依赖注入。Spring容器(Spring框架、IOC容器)负责对象的创建(Spring管理的任何对象都成为一个Bean),当类和类之间有依赖关系的时候,可以依赖注入的方式将一个对象动态的注入到别的类中。

IOC:它主要体现在对象的维护上(创建、维护、销毁等)。

DI:主要体现在对象之间的相互引用,主要是用户管理依赖(对象之间的关系)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值