欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-20 13:26:05
使用说明这个注解主要用在方法上,声明当前方法体中包含了最终产生 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();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。