如何透過三種不同的方式建立 Spring Bean?


Spring 是 Java EE 生態系統中一個非常流行的框架。它是一個開源的輕量級框架,使 Java 開發人員能夠構建可靠、可擴充套件和簡化的業務應用程式。該框架的主要目標是為您提供各種工具來管理您的業務專案。

與傳統的 Java 框架和 API(如 JSP、JDBC 和 Java Servlet)相比,開發 Web 應用程式要簡單得多。

在 Spring 中,物件——主要是那些由 Spring IoC 容器控制的物件——在應用程式中扮演著重要的角色。一個Bean只不過是 Spring IoC 容器建立、組裝和以其他方式管理的物件。

這些 Bean 是根據我們提供給容器的配置元資料生成的,例如 XML `` 定義。

建立 Spring Bean 的不同方法

在本文中,我們將討論如下所述的建立 Spring Bean 的方法:

  • 在 XML 配置檔案中建立 Bean

  • 使用 @Component 註解建立 Bean

  • 使用 @Bean 註解建立 Bean

在解釋每種方法之前,讓我們建立一個名為 Employee 的類。我們將包含兩個屬性:姓名和員工編號,對於這些屬性,可以使用 getter 和 setter 方法,或者可以使用 Lombok 來減少或消除樣板程式碼。

Employee.class

public class Employee {

   private String name;

   private String emp_nbr;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getEmp_nbr() {
      return emp_nbr;
   }

   public void setEmp_nbr(String emp_nbr) {
      this.emp_nbr = emp_nbr;
   }
}

在 Java 程式設計中,我們通常使用 new 關鍵字來建立類的例項。但是,在 Spring 中,有替代方法來生成 bean 類的例項,而無需使用 new。

可以使用 new 關鍵字,但不建議這樣做,因為這樣做會阻止在建立 bean 時注入屬性和使用自動裝配。

方法 1:在 XML 配置檔案中建立 Bean

這是建立 bean 的最簡單方法,它在 XML 配置檔案中定義。Spring 容器在啟動時建立和初始化在此配置檔案中描述的所有 bean,以便可以在應用程式上下文中隨時使用它們。

語法

<bean id="AnyUniqueId" class="YourClassName">
<!-- Property values will be set using setter injection -->
</bean>

如何透過三種不同的方式建立 Spring Bean?

我們將為上面已經建立的Employee 類建立一個 bean。這就是在配置 XML中定義bean的方式。

<bean id="employee" class="com.hari.sample.Employee">
</bean>

執行程式時,id 屬性用於唯一標識 bean 並獲取其引用。

透過這種方法,我們聲明瞭一個 bean,可以使用以下方法在應用程式中訪問和使用它:

public class App{
   @SuppressWarnings({"unchecked", "deprecation"})
   public static void main( String[] args ){
      ApplicationContext context = new AnnotationConfigApplicationContext(Employee.class);
      Employee emp = (Employee)context.getBean("employee");
      System.out.println(emp.getEmp_nbr());
      System.out.println(emp.getName());
   }
}

方法 2:使用 @Component 註解建立 Bean

註解用於傳遞有關程式的資訊。它不會直接影響它們註釋的程式碼的功能。

@Component 註解幫助 Spring 自動識別自定義 bean。使用 Spring 元件 bean 時,通常會在上方以如下方式進行註解:

示例

@Component
public class Employee {

   private String name;
   private String emp_nbr;
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getEmp_nbr() {
      return emp_nbr;
   }

   public void setEmp_nbr(String emp_nbr) {
      this.emp_nbr = emp_nbr;
   }
}

注意 - 為了在 Spring Boot 應用程式中啟用元件掃描,通常需要指定要掃描的基本包。這可以透過使用@SpringBootApplication註解您的主應用程式類或顯式使用@ComponentScan註解來完成。

方法 3:使用 @Bean 註解建立 Bean

@Bean是 Spring 中的基本註解之一,它應用於方法以將其指定為 Spring 上下文管理的 bean 提供程式。通常,Spring Bean 註解常用於配置類中。

我們之前為此目的建立了一個Employee類,因此我們將建立一個名為EmployeeConfig配置類。此 EmployeeConfig.class 檔案的程式碼如下所示。

示例

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class EmployeeConfig {
}

注意 - Spring 中的@Configuration註解旨在用於類級別。如果將其應用於方法或欄位,則會發生編譯錯誤,表明在此特定位置不允許此配置。

現在我們將使用 @Bean 註解來構建 Spring bean。在配置類中使用 @Bean 註解來構建Employee 類 bean

以下是EmployeeConfig.java檔案的完整程式碼:

//Below is a Java program demonstrating the usage of configuration in an Employee class:

// We will include the required classes by importing them
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class EmployeeConfig {

   //creating an Employee class Bean
   // using the Bean annotation
   @Bean
   public Employee employeeBean(){

      // Return the Employee object
      return new Employee();
   }
}

結論

在本文中,我們討論了使用一些示例建立 Spring bean 的方法。要實現上述示例,需要建立一個 Spring Boot 專案並進行必要的配置才能成功執行。

更新於:2023年10月16日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告