Spring基础学习(二)——IOC(控制反转)介绍

淩亂°似流年 2022-06-01 08:10 328阅读 0赞

在进行事例之前,我们需要导入Spring的Jar包,本人是基于Maven开发的,这里也推荐使用,这样就不会把工程文件大小搞地很大,团队开发时也不用把jar包传来传去的,下面简单说明一下Maven导包的过程

首先,百度搜索Maven 点击

SouthEast

进入界面后搜索Spring,然后点击Spring Context , 我选择了4.3X版本的最新版 ,然后复制代码块:

SouthEast 1

将代码块粘贴到pom.xml文件的标签块中,保存后将会自动下载

依赖注入:

所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部负责的。这样控制权就由应用

转移到了外部容器,控制权的转移就是所谓的反转。

例如:

以前我们写代码的方式:

  1. public class UserService {
  2. private UserDao userDao = new UserDao ();
  3. public void save(User User){
  4. userDao.save(User);
  5. }
  6. }//在UserService中调用UserDao,控制权在UserService中,耦合度高,如果修改了UserDao,UserService也要做相应的修改

学习spring之后,将由Spring创建对象实例—> IoC 控制反转(Inverse of Control)。之后需要实例对象时,从spring工厂(容器)中获得,需要将实现类的全限定名称配置到xml文件中

示例:

  1. public interface UserService {
  2. public void addUser();
  3. }
  4. public class UserServiceImpl implements UserService {
  5. @Override
  6. public void addUser() {
  7. System.out.println("a_ico add user");
  8. }
  9. }

配置文件,开发中常用 applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6. <!-- 配置service
  7. <bean> 配置需要创建的对象
  8. id :用于之后从spring容器获得实例时使用的
  9. class :需要创建实例的全限定类名
  10. -->
  11. <bean id="userServiceId" class="com.itheima.a_ioc.UserServiceImpl"></bean>
  12. </beans>

测试(需要导入junit的jar包,也可以直接写一个main函数进行测试):

  1. @Test
  2. public void demo02(){
  3. //从spring容器获得
  4. //1 获得容器,从类路径下读取application配置文件
  5. String xmlPath = "spring/applicationContext.xml";
  6. ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
  7. //2获得内容 --不需要自己new,都是从spring容器获得
  8. UserService userService = (UserService) applicationContext.getBean("userServiceId");
  9. userService.addUser();
  10. }

测试结果:控制台显示:a_ico add user

发表评论

表情:
评论列表 (有 0 条评论,328人围观)

还没有评论,来说两句吧...

相关阅读

    相关 spring控制IOC

    IOC即为Inversion of Control,中文名称为控制反转。它是一种设计模式,用于降低代码耦合度,提高代码可维护性和可扩展性。 在面向对象编程中,对象之间的依赖关

    相关 spring Ioc(控制)

    简述: spring的核心有两部分:ioc和aop (1)ioc:控制反转,之前调用一个类中的不是静态的方法,创建类的对象 new 类,再调用。现在使用spring的ioc

    相关 Spring框架 IOC控制

    对象之间的依赖由容器建立,避免对象之间依赖由对象自身建立。可以用减少代码之间的耦合度。其中最常见的方式叫做依赖注入。 当A类中用到了B类的对象b,在没有IOC时需要在A的代