Spring IOC 入门案例

Spring IOC 入门案例

编程工具IDEA,采用maven导入依赖。

主要目录结构

spring_ioc
- src
- - main
- - - java
- - - - com.zhangxin9727.ioc
- - - - - UserService.java
- - - - - UserServiceImp.java
- - - resources
- - - - applicationContext.xml
- - test
- - - java
- - - - SpringIocTest.java
- pom.xml

主要文件内容

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <groupId>com.zhangxin9727</groupId>
    <artifactId>spring_ioc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.4.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

UserService.java

package com.zhangxin9727.ioc;

public interface UserService {
    void sayHello();
}

UserServiceImp.java

package com.zhangxin9727.ioc;

public class UserServiceImpl implements UserService {
    @Override
    public void sayHello() {
        System.out.println("Hello World!\n你好,世界!");
    }
}

applicationContext.xml

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

    <!-- 将UserService的创建权交给Spring -->
    <bean id="userService" class="com.zhangxin9727.ioc.UserServiceImpl"></bean>

</beans>

SpringIocTest.java

import com.zhangxin9727.ioc.UserService;
import com.zhangxin9727.ioc.UserServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringIocTest {
    @Test
    //传统方法
    public void test1() {
        UserService userService = new UserServiceImpl();
        userService.sayHello();
    }

    @Test
    //Spring IOC 方法:工厂模式+反射机制+配置文件
    public void test2() {
        //创建Spring工厂
        //获取类路径下的配置文件:ClassPathXmlApplicationContext()
        //获取文件系统下的配置文件:FileSystemXmlApplicationContext()
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过工厂获得UserService类
        UserService userService = (UserService) applicationContext.getBean("userService");
        userService.sayHello();
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring IOC (Inversion of Control) 是 Spring 框架中的一个核心功能,它通过依赖注入 (Dependency Injection, DI) 的方式在运行时动态地将对象的依赖关系注入到对象中。这样做的好处是可以使得对象之间的依赖关系更加灵活,且对象的创建和使用变得更加简单。 具体来说,Spring IOC 容器会管理所有的对象,并在运行时根据配置的信息将这些对象的依赖关系注入到对象中。这些对象被称为 Spring Beans,Spring IOC 容器负责创建、配置和管理这些 Spring Beans。 使用 Spring IOC 可以使程序更加灵活,因为对象之间的依赖关系可以在运行时动态地注入,而不是在编译时确定。这样可以使得程序更加灵活,可以更好地应对变化。 总的来说,Spring IOC 是一种设计模式,用于管理对象之间的依赖关系,使得对象之间的耦合度降低,使程序变得更加灵活。 ### 回答2: Spring IOCSpring 框架的核心特性之一,全称为控制反转(Inversion of Control)。 IOC 是一种设计模式,它将程序的控制权从应用程序自身转移到了框架上,由框架来控制应用程序的对象创建和管理。传统的开发方式是通过代码来直接创建对象并管理依赖关系,而 IOC 则将这部分控制权交给了框架。 在 Spring 中,IOC 容器扮演着重要的角色,它负责初始化对象、管理对象之间的依赖关系,并在应用程序运行期间进行对象的生命周期管理。通过配置文件或注解的方式,开发者只需描述需要的对象以及对象之间的依赖关系,而无需手动去实例化和管理对象。 使用 Spring IOC 的好处主要有三个方面: 1. 开发效率提高:由于 IOC 容器负责对象的创建和管理,开发者只需要关注对象的逻辑实现,无需关心对象的创建和销毁,大大提高了开发效率。 2. 代码解耦:IOC 的设计思想强调松耦合,对象之间的依赖关系通过配置文件或注解来描述,减少了代码间的硬编码,便于维护和扩展。 3. 更好的测试性:由于对象的创建和管理交给了容器,开发者可以使用模拟对象进行单元测试,而不需要依赖真实的对象,提高了测试的灵活性。 总而言之,Spring IOC 是一种基于控制反转的设计模式,将对象的创建和管理交给了框架,提高了开发效率、代码解耦和测试的灵活性。 ### 回答3: SpringIOC(Inversion of Control)是一种编程思想,也是Spring框架的核心特性之一。通过IOC,控制权由程序员转移到了Spring容器中,由容器负责对象的创建和管理。 在传统的开发模式中,对象的创建和管理都需要由程序员手动完成,而使用Spring IOC可以将这一任务交给Spring容器完成。程序员只需通过配置文件或注解来告诉Spring容器需要创建哪些对象,而具体的对象创建、依赖注入等工作都由容器自动完成。 Spring IOC的优势主要有以下几点: 1. 松耦合:通过IOC,对象之间的依赖关系由容器来管理,提高了代码的灵活性和可维护性。 2. 可测试性:IOC可以通过依赖注入的方式来注入对象,方便进行单元测试。 3. 配置灵活:使用配置文件或注解可以灵活地配置对象的创建和依赖关系,可以方便地进行修改和扩展。 4. 容器管理:Spring容器可以管理对象的生命周期、作用域等,使得对象的创建和销毁更加方便和可控。 Spring IOC的实现方式有两种:XML配置和注解方式。在XML配置中,需要手动配置对象的创建和依赖关系;而在注解方式中,可以通过注解来自动配置对象的创建和依赖关系。 总而言之,Spring IOC是一种通过将对象的创建和管理交给容器来实现松耦合、可测试、配置灵活和容器管理的编程思想,大大提高了代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值