Spring @Bean注解配置及使用方法解析
程序员文章站
2022-06-23 22:20:37
使用说明这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 bean。这个 bean 会被 spring 加入到容器中进行管理,默认情况下 bean 的命...
使用说明
这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 bean。这个 bean 会被 spring 加入到容器中进行管理,默认情况下 bean 的命名就是使用了 bean 注解的方法名。@bean 一般和 @component 或者 @configuration 一起使用。
@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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
spring5 源码深度解析----- 被面试官给虐懵了,竟然是因为我不懂@Configuration配置类及@Bean的原理
-
Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析
-
Spring AOP AspectJ使用及配置过程解析
-
荐 Spring-boot-study02-spring.xml配置文件注入组件和@Bean注解注入组件差别
-
Spring纯注解配置实现代码示例解析
-
Spring常用注解及使用方法
-
Spring interceptor拦截器配置及用法解析
-
Spring @Bean注解配置及使用方法解析
-
Spring IOC容器装配Bean_基于注解配置方式
-
配置spring两种方式,XML与注解(通过@Configuration实现bean注入)