如何透過三種不同的方式建立 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 專案並進行必要的配置才能成功執行。