当前位置: 首页> 健康> 知识 > Spring底层原理之bean的加载方式三 用注解声明配置类 以及@Configuration 和 @Component 的区别

Spring底层原理之bean的加载方式三 用注解声明配置类 以及@Configuration 和 @Component 的区别

时间:2025/7/11 0:30:39来源:https://blog.csdn.net/qq_30500575/article/details/139962247 浏览次数:0次

bean的加载方式三 用注解声明配置类

我们之前用组件扫描加上注解定义bean

实现了bean的加载

当我们又会发现这个配置文件过于繁琐

我们可以写一个类

不是配置文件而是配置类

我们接下来只需要把这句话的功能写到

配置类里面

这样书写就行

package com.bigdata1421.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;@ComponentScan({"com.bigdata1421.bean","com.bigdata1421.config"})
public class SpringConfig3 {}

启动类启动

package com.bigdata1421.bean.app;import com.bigdata1421.config.SpringConfig3;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App3 {public static void main(String[] args) {ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig3.class);String[] arr = ctx.getBeanDefinitionNames();for (String s : arr) {System.out.println(s);}}}

成功查看到了信息

@Configuration

@Configuration是 Spring Framework 中的一个注解,它用于指示该类是一个配置类,它的作用类似于传统的 XML 配置文件。具体来说,它的主要功能有以下几点:

  1. 定义配置类:使用 @Configuration 注解的类可以提供 bean 的定义和其他 Spring 配置的定义。

  2. 声明 Bean:在配置类中,可以使用 @Bean 注解声明 bean。这些 bean 将由 Spring 容器管理,并可以在应用程序中通过依赖注入来使用。

  3. 替代 XML 配置@Configuration 注解通常用来取代传统的 XML 配置文件,因为它提供了更加便捷和类型安全的配置方式。

  4. 组合注解@Configuration 注解经常与其他注解结合使用,例如 @ComponentScan@Import,以及 Spring Boot 中的 @SpringBootApplication

@Component

@Component 是 Spring Framework 中最基本的注解之一,用于表示一个类是 Spring 管理的组件。具体来说,@Component 通常用于将 Java 类标识为 Spring Bean,这些 Bean 可以由 Spring 容器进行实例化、管理和组装。

  1. 作为 Spring Bean 的标识

    • 当一个类使用 @Component 注解标注时,Spring 将会在运行时自动扫描并将其注册为一个 Bean。

    • 这意味着该类的实例可以由 Spring IoC 容器进行管理,包括依赖注入和生命周期管理等。

  2. 类的自动检测和注册

    • 通过组件扫描(component scanning),Spring 可以自动检测带有 @Component 注解的类,并将其实例化为 Bean。

    • 在典型的 Spring 应用程序中,可以通过配置 @ComponentScan 注解来指定扫描的包路径,从而告诉 Spring 在哪里寻找和注册组件。

  3. 与其他注解的关系

    @Component

    注解是一个通用的组件配置,它的派生注解有更具体的用途和语义,例如:

    • @Controller:用于标识控制器类。

    • @Service:用于标识服务层(service layer)类。

    • @Repository:用于标识数据访问层(repository layer)类。

    • 这些派生注解除了表明类的职责外,还会影响 Spring 在某些情况下的行为,例如异常处理和事务管理。

  4. 简化配置

    • 使用 @Component 及其派生注解可以大大简化 Spring 应用程序的配置文件,尤其是替代传统的 XML 配置文件方式。

区别

  1. 目的和作用

    • @Component:用于标识一个普通的 Spring Bean,主要用于组件扫描和自动装配。

    • @Configuration:用于定义一个配置类,包含 Bean 定义和其他应用配置,通常作为配置文件的替代方案。

  2. 方式

    • @Component:类本身被标记为一个组件,由 Spring 自动扫描和注册为 Bean。

    • @Configuration:类中的方法被标记为 @Bean,这些方法返回的对象被注册为 Spring Bean。

  3. 结构

    • @Component:直接应用于类,表示该类本身是一个组件。

    • @Configuration:应用于类,表示该类包含一个或多个 @Bean 方法,这些方法定义了要被 Spring 容器管理的 Bean。

小结

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

关键字:Spring底层原理之bean的加载方式三 用注解声明配置类 以及@Configuration 和 @Component 的区别

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: