Spring @Bean注解详解

java-教程王 Spring 发布时间:2022-04-05 17:01:12 阅读数:8657 1
下文笔者将详细介绍@Bean注解的用法,如下所示:

@Bean注解的使用场景

@Bean注解常用于方法上,
   方法体中的内容代表此Bean实际产生的逻辑
   方法体的返回值为一个Bean
   这个Bean会交给Spring进行管理
   bean的命名通常采用 bean注解的方法名
注意事项:
   bean注解通常和Component或Configuration注解一起使用 
--------------------------------------------------------------
@Bean注解类似于xml中如下的bean定义 
<bean id="useService" class="com.test.service.UserServiceImpl"/>

@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 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();
    }
}

上述的Spring容器中,会生成一个名称为user的bean

例2:指定bean名称

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

//采用以下命名方式后
//bean可使用 user,javaUser,maomaoUser中任意一个名称可都
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class MyConfigration {
    @Bean(name = {"javaUser", "maomaoUser"})
    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
public OneService getService(status) {
    case (status)  {
        when 1:
                return new serviceImpl1();
        when 2:
                return new serviceImpl2();
        when 3:
                return new serviceImpl3();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202204/2723.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者