Spring Boot 与@Bean注解搭配场景

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

1. @Bean与@Configuration

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

java 复制代码
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

2. @Bean与@Scope

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

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 {
    @Autowired
    private MyBean myBean;
}

8. @Bean与@Qualifier

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

java 复制代码
@Autowired
@Qualifier("myService")
private MyService service;
相关推荐
光依旧3 小时前
MCP实战手记系列(十):MCP Server高可用实战
spring boot·高可用·nginx负载均衡·redis哨兵·mcp·微服务容错·resilience4j熔断
Sarvartha4 小时前
final 关键字
java·开发语言
2601_952047794 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
Joy T4 小时前
Spring AI 项目中的 pom.xml、application.yml 与 Nacos:从依赖管理到运行配置
spring·nacos·pom.xml·profile·参数配置·application.yml
数据狐(Datafox)4 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
Escalating_xu6 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
灯澜忆梦6 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
一个风轻云淡7 小时前
GCC 和 GDB命令简单解读
java·linux·前端