Spring IOC 容器的理解(七)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Spring IOC 容器的理解(七)

第四节 基于注解管理bean
第一个实验 [重要]标记与扫描

第二个实验 [重要]自动装配

第三个实验 完全注解开发

第四个实验 整合junit4

第三个实验 完全注解开发

1、使用配置类取代配置文件

①创建配置类

②根据配置类创建IOC容器对象

2、在配置类中配置bean

3、在配置类中配置自动扫描的包

第三个实验 完全注解开发
体验完全注解开发,是为了给将来学习SpringBoot打基础。因为在SpringBoot中,就是完全舍弃XML配置文件,全面使用注解来完成主要的配置。

1、使用配置类取代配置文件
①创建配置类
使用@Configuration注解将一个普通的类标记为Spring的配置类。

package com.atguigu.ioc.configuration;

import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfiguration {
}
②根据配置类创建IOC容器对象
// ClassPathXmlApplicationContext根据XML配置文件创建IOC容器对象
private ApplicationContext iocContainer = new ClassPathXmlApplicationContext("applicationContext.xml");

// AnnotationConfigApplicationContext根据配置类创建IOC容器对象
private ApplicationContext iocContainerAnnotation = new AnnotationConfigApplicationContext(MyConfiguration.class);
2、在配置类中配置bean
使用@Bean注解

@Configuration
public class MyConfiguration {


// @Bean注解相当于XML配置文件中的bean标签
// @Bean注解标记的方法的返回值会被放入IOC容器
@Bean
public CommonComponent getComponent() {

    CommonComponent commonComponent = new CommonComponent();

    commonComponent.setComponentName("created by annotation config");

    return commonComponent;
}

}

3、在配置类中配置自动扫描的包

@Configuration
@ComponentScan("com.atguigu.ioc.component")
public class MyConfiguration {

……

第四个实验 整合junit4

1、整合的好处

2、操作

①加入依赖

②创建测试类

第四个实验 整合junit4
1、整合的好处
好处1:不需要自己创建IOC容器对象了
好处2:任何需要的bean都可以在测试类中直接享受自动装配
2、操作
①加入依赖

<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.1</version>


②创建测试类
// junit的@RunWith注解:指定Spring为Junit提供的运行器
@RunWith(SpringJUnit4ClassRunner.class)

// Spring的@ContextConfiguration指定Spring配置文件的位置
@ContextConfiguration(value = {"classpath:applicationContext.xml"})
public class JunitIntegrationSpring {


@Autowired
private SoldierController soldierController;

@Test
public void testIntegration() {
    System.out.println("soldierController = " + soldierController);
}

}

其实在javaservlet中规定servlet必须在容器中管理,而spring框架更是很好的提供了我们这个环境,在最初的spring框架中采用xml和bean对ioc容器进行管理,在springboot以及后续升级框架中管理方式以及装配方式会有所改变,但是原理都是有spring框架基础的演变过来的,只要掌握了spring框架的基本原理,在后续的学习当中我们会更容易的去使用并且理解其他衍生框架的含义,例如springmvc以及springboot和springcloud等衍生框架,更加方便了我们对框架的理解与学习。

关于IOC 容器的文章连续更新结束了,后期会更新其他的好文的,希望多多关注撒

相关文章
|
8天前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
97 69
|
6天前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
40 21
|
13天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
11天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
17天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
54 6
|
1月前
|
存储 缓存 Java
Spring面试必问:手写Spring IoC 循环依赖底层源码剖析
在Spring框架中,IoC(Inversion of Control,控制反转)是一个核心概念,它允许容器管理对象的生命周期和依赖关系。然而,在实际应用中,我们可能会遇到对象间的循环依赖问题。本文将深入探讨Spring如何解决IoC中的循环依赖问题,并通过手写源码的方式,让你对其底层原理有一个全新的认识。
55 2
|
1月前
|
安全 Java 开发者
Spring容器中的bean是线程安全的吗?
Spring容器中的bean默认为单例模式,多线程环境下若操作共享成员变量,易引发线程安全问题。Spring未对单例bean做线程安全处理,需开发者自行解决。通常,Spring bean(如Controller、Service、Dao)无状态变化,故多为线程安全。若涉及线程安全问题,可通过编码或设置bean作用域为prototype解决。
34 1
|
2月前
|
XML 缓存 Java
搞透 IOC、Spring IOC ,看这篇就够了!
本文详细解析了Spring框架的核心内容——IOC(控制反转)及其依赖注入(DI)的实现原理,帮助读者理解如何通过IOC实现组件解耦,提高程序的灵活性和可维护性。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
2月前
|
前端开发 Java Docker
使用Docker容器化部署Spring Boot应用程序
使用Docker容器化部署Spring Boot应用程序
|
2月前
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
55 0