使用说明
这个注解主要用在方法上,声明当前方法体中包含了最终产生 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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
荐 深入理解Java中的BigInteger和 BigDecimal,再也不怕面试了
tomact正常启动,但是在日志文件报错java.lang.NoClassDefFoundError: java/util/logging/Logger
servlet整合quartz:servlet中使用quartz,服务器启动时加载任务
荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法
SpringBoot整合mybatis访问时报错Invalid bound statement (not found)
网友评论