ترجمة التعليقة @Bean في Spring

الترجمة:
تُطبق تعليق @Bean في الربيع على الطريقة لتحديد أنه يعيد كائنًا يتم إدارته من قبل سياق الربيع. يُعلن عادة تعليق Spring Bean في طرق فئة التكوين. في هذه الحالة، قد تشير طرق الكائن إلى طرق أخرى @Bean في نفس الفئة عن طريق استدعائها مباشرة.

Spring @Bean مثال

لنفترض أن لدينا فئة بسيطة كما هو مبين أدناه.

package com.journaldev.spring;

public class MyDAOBean {

	@Override
	public String toString() {
		return "MyDAOBean"+this.hashCode();
	}
}

فيما يلي فئة تكوين حيث قمنا بتعريف طريقة @Bean لفئة MyDAOBean.

package com.journaldev.spring;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyAppConfiguration {

	@Bean
	public MyDAOBean getMyDAOBean() {
		return new MyDAOBean();
	}
}

يمكننا الحصول على الكائن MyDAOBean من سياق الربيع باستخدام مقتطف الكود أدناه.

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.scan("com.journaldev.spring");
context.refresh();
		
//الحصول على الكائن عن طريق الفئة
MyDAOBean myDAOBean = context.getBean(MyDAOBean.class);

اسم الكائن في الربيع

يمكننا تحديد اسم @Bean واستخدامه للحصول عليها من سياق الربيع. لنفترض أن لدينا فئة MyFileSystemBean معرفة كما يلي:

package com.journaldev.spring;

public class MyFileSystemBean {

	@Override
	public String toString() {
		return "MyFileSystemBean"+this.hashCode();
	}
	
	public void init() {
		System.out.println("init method called");
	}
	
	public void destroy() {
		System.out.println("destroy method called");
	}
}

الآن قم بتعريف طريقة @Bean في فئة التكوين:

@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"})
public MyFileSystemBean getMyFileSystemBean() {
	return new MyFileSystemBean();
}

يمكننا الحصول على هذا الفاصوليا من السياق باستخدام اسم الفاصوليا.

MyFileSystemBean myFileSystemBean = (MyFileSystemBean) context.getBean("getMyFileSystemBean");

MyFileSystemBean myFileSystemBean1 = (MyFileSystemBean) context.getBean("MyFileSystemBean");

Spring @Bean initMethod و destroyMethod

يمكننا أيضًا تحديد طريقة بدء تشغيل الفاصوليا وطريقة تدمير الفاصوليا في Spring. يتم استدعاء هذه الطرق عند إنشاء الفاصوليا في Spring وعند إغلاق السياق على التوالي.

@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"}, initMethod="init", destroyMethod="destroy")
public MyFileSystemBean getMyFileSystemBean() {
	return new MyFileSystemBean();
}

سوف تلاحظ أن طريقة “init” تستدعى عندما نستدعي طريقة تحديث السياق refresh ويتم استدعاء طريقة “destroy” عندما نستدعي طريقة إغلاق السياق close.

ملخص

تُستخدم تعليقة Spring @Bean على نطاق واسع في تطبيقات Spring التي تعتمد على التعليقات.

يمكنك تنزيل المشروع الكامل لـ Spring من مستودعنا على GitHub.

Source:
https://www.digitalocean.com/community/tutorials/spring-bean-annotation