当前位置: 移动技术网 > IT编程>开发语言>Java > Spring @Bean注解配置及使用方法解析

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

2020年05月12日  | 移动技术网IT编程  | 我要评论

使用说明

这个注解主要用在方法上,声明当前方法体中包含了最终产生 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();
  }
}

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网