Spring @Bean 注解的使用
时间:2020-04-13
本文章向大家介绍Spring @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();
}
}
参考:https://www.hangge.com/blog/cache/detail_2506.html
https://www.jianshu.com/p/2f904bebb9d0
https://www.cnblogs.com/feiyu127/p/7700090.html
原文地址:https://www.cnblogs.com/danhuang/p/12692995.html
- Python 元类(MetaClass)
- linux学习第三十六篇:MariaDB安装,Apache安装
- Python 5种连接字符串的方法
- Python 装饰器(Decorator)
- linux学习第三十七篇:安装PHP5,安装PHP7
- linux学习第三十八篇: Apache和PHP结合,Apache默认虚拟主机
- Python lambda表达式
- Python的闭包(Closure)与惰性计算(Lazy Evaluation)
- linux学习第三十九篇:Apache用户认证,域名跳转,Apache访问日志
- Python sorted()函数
- Python filter()函数
- Python reduce()函数
- Python map()函数
- Python iterator迭代器
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 秋天的第一杯奶茶该买哪家?Python 爬取美团网红奶茶店告诉你
- AttributeError: NoneType object has no attribute‘’
- tf.control_dependencies(control_inputs)
- tf.get_collection()
- tf.reduce_mean()
- tf.placeholder函数说明
- tf.sigmoid()用法
- Latex 表格过大(或过小)的调整方法
- Latex设置字体大小及表格中的文字大小等
- jQuery 选择器
- jQuery 介绍 以及基本使用
- 答应我,用了这个jupyter插件,别再重复造轮子了
- 商业数据分析从入门到入职(9)Python网络数据获取
- 谈一谈还原解包后小程序页面wxss样式的若干方法
- 什么?不使用selenium爬京东评论?你是不是在骗我