Spring Boot 与@Bean注解搭配场景

server/2025/2/27 13:10:17/

在Spring Boot中,@Bean注解通常与其他注解一起使用,以实现更灵活的Bean管理、依赖注入和配置。以下是一些常见的搭配使用场景:

1. @Bean@Configuration

@Bean注解通常用于配置类(带有@Configuration注解的类)中,用于声明一个Bean。Spring容器会自动调用带有@Bean注解的方法,并将方法的返回值注册为一个Bean。

java">@Configuration
public class AppConfig {@Beanpublic MyService myService() {return new MyService();}
}

2. @Bean@Scope

@Scope注解可以与@Bean一起使用,用于指定Bean的作用域(如singletonprototype等)。

java">@Bean
@Scope("prototype")
public MyService myService() {return new MyService();
}

3. @Bean@Lazy

@Lazy注解可以与@Bean一起使用,表示延迟加载Bean。这意味着Bean只有在被首次使用时才会被初始化。

java">@Bean
@Lazy
public MyService myService() {return new MyService();
}

4. @Bean@Primary

@Primary注解可以与@Bean一起使用,用于指定当存在多个同类型的Bean时,优先选择哪一个Bean。

java">@Bean
@Primary
public MyService primaryService() {return new MyService();
}

5. @Bean@Profile

@Profile注解可以与@Bean一起使用,用于根据环境激活特定的Bean。

java">@Bean
@Profile("dev")
public MyService devService() {return new DevService();
}

6. @Bean@DependsOn

@DependsOn注解可以与@Bean一起使用,用于指定当前Bean的依赖关系,确保某些Bean在当前Bean初始化之前被创建。

java">@Bean
@DependsOn("anotherBean")
public MyService myService() {return new MyService();
}

7. @Bean@Autowired

@Bean声明的Bean可以通过@Autowired注解在其他组件中被自动注入。

java">@Service
public class MyService {@Autowiredprivate MyBean myBean;
}

8. @Bean@Qualifier

当存在多个同类型的Bean时,@Qualifier注解可以与@Autowired一起使用,用于指定注入哪一个Bean。

java">@Autowired
@Qualifier("myService")
private MyService service;


http://www.ppmy.cn/server/171042.html

相关文章

APP自动化实战

APP自动化能做什么? 请看示例(实现批量的视频,封面功能复用能力(实现效果参考抖音号:71403700901) APP自动化实战-操作剪映APP PO模式 1. PO模式介绍 PO(Page Object)…

Flutter 介绍及安装使用

Flutter 安装 1. 镜像的配置 Flutter 源站在国内可能不太稳定,因此谷歌中国开发者社区(GDG)专门搭建了临时镜像,使得我们的 Flutter 命令行工具可以到该镜像站点下载所需资源。 使用方法 Flutter SDK 默认从 Github 获取更新,如您访问 Github…

esp8266 rtos sdk开发环境搭建

1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码,你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置,安装完成后,在命令提示符(CMD)或 PowerShell 中输入git --version&#…

二十三种设计模式详解

二十三种设计模式是软件开发中用于解决常见问题的经典解决方案,它们由 Erich Gamma 等四位作者在《设计模式:可复用面向对象软件的基础》一书中提出。这些模式分为三大类:创建型模式、结构型模式 和 行为型模式。 1. 创建型模式(…

seasms v9 注入漏洞 + order by注入+​information_schema​解决方法

目录 一、当注入时,information_schema被禁用的解决方法 1.通过sys库可以获取到表名和库名 2.通过无列名注入join获取列名 二、seasms v9 注入漏洞 三、order by注入 一、当注入时,information_schema被禁用的解决方法 information_schema数据库是My…

【一文入门】shell语法进阶篇

Shell 脚本的进阶语法涉及更复杂的编程结构、数据处理和系统交互。以下是一些进阶的 Shell 编程概念和技巧,帮助你提升编写复杂脚本的能力。 前置知识 【一文入门】shell基础语法 【一文入门】shell语法进阶篇 1. 高级变量操作 间接引用:通过变量名的…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型,然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库:在 Dify 平台上,通过普通编排的方式,创建了基于…

轮式机器人在复杂地形中如何选择合适的全局路径规划算法

已思考完成 收起 好的,我现在需要回答用户关于轮式机器人局部路径规划算法的问题。用户之前已经提过这个问题,现在提供了更多的参考内容,我需要仔细分析这些内容,整理出合适的答案。 首先,我需要回顾用户提供的参考内容…