溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何配置和使用Spring @Bean注解

發(fā)布時(shí)間:2020-07-30 11:23:26 來源:億速云 閱讀:242 作者:小豬 欄目:編程語言

小編這次要給大家分享的是如何配置和使用Spring @Bean注解,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

使用說明

這個(gè)注解主要用在方法上,聲明當(dāng)前方法體中包含了最終產(chǎn)生 bean 實(shí)例的邏輯,方法的返回值是一個(gè) Bean。這個(gè) bean 會(huì)被 Spring 加入到容器中進(jìn)行管理,默認(rèn)情況下 bean 的命名就是使用了 bean 注解的方法名。@Bean 一般和 @Component 或者 @Configuration 一起使用。

@Bean 顯式聲明了類與 bean 之間的對(duì)應(yīng)關(guān)系,并且允許用戶按照實(shí)際需要?jiǎng)?chuàng)建和配置 bean 實(shí)例。

該注解相當(dāng)于:

<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,兩個(gè)均可使用

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,三個(gè)均可使用

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

看完這篇關(guān)于如何配置和使用Spring @Bean注解的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI