Spring @Bean注解配置使用方法解析

网友投稿 250 2023-06-08

本文转载自网络公开信息

Spring @Bean注解配置及使用方法解析

Spring @Bean注解配置及使用方法解析

使用说明

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

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

该注解相当于:

普通组件

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class MyConfigration {

@Bean

public User user() {

return new User;

}

}

import http://org.springframework.beans.factory.annhttp://otation.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.Behttp://an;

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:

returnjucICkecw new serviceImpl3();

}

}

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表Finclip的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
上一篇:Java POI读取excel中数值精度损失问题解决
下一篇:详解@Autowired(required=false)注入注意的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~


×