当前位置: 首页 > article >正文

SpringBoot中能被外部注入以来的注解

在 Spring Boot 中,可以使用多种注解来实现依赖注入。以下是一些常用的注解:

  1. @Autowired:这是最常用的依赖注入注解,可以用于字段、构造函数和方法。Spring 会自动将匹配类型的 Bean 注入到该字段或参数中。

    @Autowired
    private MyService myService;
    
  2. @Inject:这是 JSR-330 标准中的注解,功能与 @Autowired 类似,但需要额外的依赖(如 javax.inject)。

    @Inject
    private MyService myService;
    
  3. @Resource:这是 JSR-250 标准中的注解,可以按名称或类型进行注入。

    @Resource
    private MyService myService;
    
  4. @Bean:在配置类中,@Bean 注解的方法返回的实例会被注册为 Spring 上下文中的 Bean,可以被其他组件注入。

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
    
  5. 构造函数注入:通过在构造函数上使用 @Autowired 注解(或直接使用构造函数注入,无需注解),可以实现构造函数注入。

    @Autowired
    public MyComponent(MyService myService) {
        this.myService = myService;
    }
    
  6. @Service@Repository@Controller@Component:这些注解标识的类会被 Spring 自动扫描并注册为 Bean,可以被其他组件注入。

    @Service
    public class MyService {
        // ...
    }
    
  7. @Configuration:标识配置类,@Configuration 类中的 @Bean 方法返回的实例会被注册为 Spring 上下文中的 Bean。

    @Configuration
    public class AppConfig {
        // ...
    }
    
  8. @Value:用于注入配置文件中的属性值。

    @Value("${app.name}")
    private String appName;
    
  9. @Qualifier:与 @Autowired 一起使用,用于指定要注入的 Bean 的名称。

    @Autowired
    @Qualifier("myServiceImpl")
    private MyService myService;
    
  10. @Primary:当有多个同类型的 Bean 时,可以使用 @Primary 注解来指定默认注入的 Bean。

    @Primary
    @Service
    public class MyServiceImpl implements MyService {
        // ...
    }
    

这些注解使得 Spring Boot 应用程序中的依赖管理变得简单和直观。通过使用这些注解,你可以轻松地实现组件之间的依赖注入,提高代码的可维护性和可测试性。


http://www.kler.cn/a/542035.html

相关文章:

  • 五十天精通硬件设计第29天-传输线物理基础
  • 2. UVM的基本概念和架构
  • 【R】Dijkstra算法求最短路径
  • PyQt学习记录
  • 2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理
  • leetcode 做题思路快查
  • 网站快速收录攻略:提升页面加载速度
  • django中间件,中间件给下面传值
  • 05:定时器生成频率不同的波形
  • Rocketmq 和 Rabbitmq ,在多消费者的情况下,可以实现顺序消费吗
  • 使用腾讯云大模型知识引擎搭建满血deepseek
  • arcgis for js实现层叠立体效果
  • C++ 用Eigen的非线性求解LevenbergMarquardt,亲测ok
  • Python 透明数字时钟
  • 独立站赋能反向海淘:跨境代购系统的用户体验与支付解决方案
  • 2025.2.10 每日学习记录3:技术报告只差相关工作+补实验
  • 在npm上传属于自己的包
  • 【RabbitMQ的x-death头】消息死亡记录头流转示例
  • 攻防世界32 very_easy_sql【SSRF/SQL时间盲注】
  • android的第一个app项目(java版)
  • C++ Primer 简单语句
  • webpack配置之---output.publicPath
  • 【机器学习】 特征归一化的重要性及方式
  • 【Day37 LeetCode】动态规划DP Ⅹ 子序列问题
  • centos 8和centos 9 stream x64的区别
  • 寒假集训思维训练5题解