Spring中如何正确使用@Bean注解进行Bean配置?

2026-05-26 09:261阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计538个文字,预计阅读时间需要3分钟。

Spring中如何正确使用@Bean注解进行Bean配置?

使用说明:此注解主要用在使用方法上,声明当前方法体中包含了最终生产bean的逻辑,方法返回值是一个Bean。这个Bean会被Spring添加到容器中进行管理,默认情况下bean的名称与返回值相同。

使用说明

这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 Bean。这个 bean 会被 Spring 加入到容器中进行管理,默认情况下 bean 的命名就是使用了 bean 注解的方法名。@Bean 一般和 @Component 或者 @Configuration 一起使用。

Spring中如何正确使用@Bean注解进行Bean配置?

@Bean 显式声明了类与 bean 之间的对应关系,并且允许用户按照实际需要创建和配置 bean 实例。

该注解相当于:

<bean id="useService" class="com.test.service.UserServiceImpl"/>

普通组件

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean public User user() { return new User; } }

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired User user; @GetMapping("/test") public User test() { return user.test(); } }

命名组件

bean 的命名为:user,别名为:myUser,两个均可使用

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = "myUser") public User user() { return new User; } }

bean 的命名为:user,别名为:myUser / yourUser,三个均可使用

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = {"myUser", "yourUser"}) public User user() { return new User; } }

Bean 初始化和销毁

public class MyBean { public void init() { System.out.println("MyBean初始化..."); } public void destroy() { System.out.println("MyBean销毁..."); } public String get() { return "MyBean使用..."; } }

@Bean(initMethod="init", destroyMethod="destroy") public MyBean myBean() { return new MyBean(); }

只能用 @Bean 不能使用 @Component

@Bean public OneService getService(status) { case (status) { when 1: return new serviceImpl1(); when 2: return new serviceImpl2(); when 3: return new serviceImpl3(); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计538个文字,预计阅读时间需要3分钟。

Spring中如何正确使用@Bean注解进行Bean配置?

使用说明:此注解主要用在使用方法上,声明当前方法体中包含了最终生产bean的逻辑,方法返回值是一个Bean。这个Bean会被Spring添加到容器中进行管理,默认情况下bean的名称与返回值相同。

使用说明

这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 Bean。这个 bean 会被 Spring 加入到容器中进行管理,默认情况下 bean 的命名就是使用了 bean 注解的方法名。@Bean 一般和 @Component 或者 @Configuration 一起使用。

Spring中如何正确使用@Bean注解进行Bean配置?

@Bean 显式声明了类与 bean 之间的对应关系,并且允许用户按照实际需要创建和配置 bean 实例。

该注解相当于:

<bean id="useService" class="com.test.service.UserServiceImpl"/>

普通组件

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean public User user() { return new User; } }

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired User user; @GetMapping("/test") public User test() { return user.test(); } }

命名组件

bean 的命名为:user,别名为:myUser,两个均可使用

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = "myUser") public User user() { return new User; } }

bean 的命名为:user,别名为:myUser / yourUser,三个均可使用

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfigration { @Bean(name = {"myUser", "yourUser"}) public User user() { return new User; } }

Bean 初始化和销毁

public class MyBean { public void init() { System.out.println("MyBean初始化..."); } public void destroy() { System.out.println("MyBean销毁..."); } public String get() { return "MyBean使用..."; } }

@Bean(initMethod="init", destroyMethod="destroy") public MyBean myBean() { return new MyBean(); }

只能用 @Bean 不能使用 @Component

@Bean public OneService getService(status) { case (status) { when 1: return new serviceImpl1(); when 2: return new serviceImpl2(); when 3: return new serviceImpl3(); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。