Spring的介绍和IOC控制反转入门案例

本文介绍了Spring框架的基本概念,特别是重点讲解了IOC(控制反转)的核心思想。通过一个简单的UserService案例,详细阐述了如何配置ApplicationContext,创建并管理对象,以及如何利用JUnit进行测试。文章引导读者从准备环境到编写UserService、XML配置文件,再到测试类的完整过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Spring的概述

Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:
反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC
和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的
Java EE 企业应用开源框架。

二.Spring 的IOC控制反转:

2.1 概念

控制反转,把原理new对象的这种方式转换成了,spring通过反射创建对象的方式,
spring创建完的对象放到一个容器中,谁需要就给谁注入进去.
简单说:把创建对象和管理对象的权利交给spring

2.2如何来实现IOC进行创建对象和管理对象

**加粗样式**

2.3控制反转的入门案例

1.准备环境

- 导入spring所需要的4个jar

在idea里我们就需要导入spring-context
原因:依赖
在这里插入图片描述

 <!--如果要做一个spring ioc 需要导入4个jar-->
   <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

2 创建一个UserService, 里面有一个属性username ,有一个play的方法; 接下来使用spring来创建改对象并给该对象的username属性值设置值. 最后使用junit进行测试.

实现步骤:

1.编写一个类UserService

public class UserService {

    private String username;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    //玩的方法
    public void play(){
        System.out.println(username+"喜欢玩篮球");
    }
}

2.编写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">

    <!--创建Demo1_UserService对象
        以下的配置作用相当于   UserService  userService = new UserService();
        对象创建完放到了spring容器中
    -->
    <bean id="userService" class="com.sen.ioc.UserService">
        <!--给username设置属性
            以下配置相当于   userService.setUserName();
        -->
        <property name="username" value="蔡徐坤"/>
    </bean>
</beans>

3.编写一个测试类

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import static org.junit.Assert.*;

public class UserServiceTest {

    //对UserService进行测试, 获取spring创建的对象获取该对象的属性
    @Test
    public void test01(){
        //传统方式:
        //UserService service = new UserService();
        //service.setUsername("老王");
        //service.play();

        //spring的ioc方式
        //1.获取spring的容器
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.调用容器的getBean("userService") 得到UserService的对象 (已经有属性了)
        UserService userService = (UserService) context.getBean("userService");
        //3.调用他的play方法
        userService.play();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值