Spring常用注解整理说明
发布日期:2021-05-16 13:53:46 浏览次数:21 分类:精选文章

本文共 1382 字,大约阅读时间需要 4 分钟。

Spring注解深入解析

@Configuration

作用

@Configuration注解用于定义配置类,替代传统的xml配置文件。它使Spring能够自动扫描注解类中带有@Bean注解的方法,生成对应的Bean实例并初始化Spring容器。

注意事项

  • 配置类不能是final类型
  • 配置类不能是匿名类
  • 如果@Configuration注解嵌套使用,嵌套的配置类必须是静态类
  • 使用方式

  • 使用@Configuration注解定义配置类,结合@Bean注解注册Bean
  • 配合@ComponentScan注解扫描包路径,自动注册需要创建的Bean
  • 启动Spring容器,完成应用程序运行
  • @Component及其子注解

    @Component

    @Component是一个基础的Spring注解,用于标注需要Spring托管的Bean类。Spring会自动创建该类实例并存储在IOC容器中。

    @Controller、@Service、@Repository

    这些注解都是@Component的特殊化版本,分别用于标注控制器组件、业务逻辑组件和DAO组件。

    • @Controller:标注控制器组件类
    • @Service:标注业务逻辑组件类
    • @Repository:标注DAO组件类

    注意事项

  • 尽量使用@Controller、@Service、@Repository代替@Component,语义更清晰,便于维护
  • 这些注解都带有可选属性value,默认值为该类名首字母小写
  • @Bean、@Qualifier、@Scope

    @Bean

    @Bean注解用于定义工厂方法,用于在配置类中注解需要生成Bean的方法。

    @Qualifier

    Qualifier注解用于指定Bean的ID,用于在@Autowired注解中配合使用,完成特定Bean的注入。

    @Scope

    @Scope注解用于定义Bean的作用域,可以是Singleton(单例)或Prototype(原型)。

    @ComponentScan

    作用

    @ComponentScan会自动扫描指定包路径,注册该包下所有需要创建的@Component、@Controller、@Service、@Repository等注解标注的类到Spring容器中。

    @Autowired与@Resource

    相同点

  • 都用于自动装配Bean实例到Spring容器中
  • 都可以标注在字段或属性的setter方法上
  • 不同点

  • 提供方:
    • @Autowired由Spring提供
    • @Resource由J2EE提供(需JDK1.6及以上)
  • 注入方式:
    • @Autowired按类型注入,需配合@Qualifier使用可指定BeanID
    • @Resource默认按ID注入,也支持按类型注入
  • 属性:
    • @Autowired默认要求依赖对象存在,可设置属性required="false"允许null
    • @Resource有name和type属性,name用于指定BeanID,type用于指定Bean类型
  • @Resource注意事项

    如果未指定name属性且按默认名称无法找到依赖对象,@Resource会回退到按类型注入

    推荐使用

    • @Resource注解适合在字段上使用,无需编写setter方法
    • @Resource属于J2EE注解,减少与Spring耦合,代码更优雅
    上一篇:Spring之Bean(作用域、生命周期)
    下一篇:Spring入门案例(xml方式和注解方式)

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月26日 10时26分53秒