CodeGym /Java Blog /சீரற்ற /சோம்பேறிகளுக்கான வசந்தம் அறக்கட்டளை, அடிப்படைக் கருத்துக்...
John Squirrels
நிலை 41
San Francisco

சோம்பேறிகளுக்கான வசந்தம் அறக்கட்டளை, அடிப்படைக் கருத்துக்கள் மற்றும் குறியீட்டுடன் எடுத்துக்காட்டுகள். பகுதி 1

சீரற்ற குழுவில் வெளியிடப்பட்டது
சோம்பேறிகளுக்கான வசந்தம் அறக்கட்டளை, அடிப்படைக் கருத்துக்கள் மற்றும் குறியீட்டுடன் எடுத்துக்காட்டுகள்.  பகுதி 1 - 1இந்த கட்டுரையில், எனது குறியீட்டைப் பயன்படுத்தி 5 நிமிடங்களில் வேலை செய்யும் ஸ்பிரிங் திட்டத்தை எவ்வாறு இயக்குவது என்பதை நான் உங்களுக்குச் சொல்லப் போவதில்லை. நான் அடிப்படைகளை மட்டுமே எழுதப் போகிறேன் - நீங்கள் அறியாத மற்றும் இன்னும் ஒரு திட்டத்தை உருவாக்கக்கூடிய விஷயங்கள். ஆனால் இந்த கட்டுரையில், என்ன நடக்கிறது என்பதை நீங்கள் இன்னும் புரிந்து கொள்ள மாட்டீர்கள், மிக முக்கியமாக, ஏன்.

ஸ்பிரிங் ஃப்ரேம்வொர்க் என்றால் என்ன?

ஸ்பிரிங் ஃபிரேம்வொர்க் அல்லது வெறுமனே ஸ்பிரிங் என்பது ஜாவாவில் வலை பயன்பாடுகளை உருவாக்குவதற்கான மிகவும் பிரபலமான கட்டமைப்புகளில் ஒன்றாகும். ஒரு கட்டமைப்பானது ஒரு நூலகம் போன்றது (ஒருவேளை நீங்கள் இந்த வார்த்தையை நன்கு அறிந்திருக்கலாம்), ஆனால் கருத்தில் கொள்ள வேண்டிய ஒன்று உள்ளது. தோராயமாகச் சொன்னால், நீங்கள் ஒரு நூலகத்தைப் பயன்படுத்தும் போது, ​​அதில் உள்ள வகுப்புகளின் நிகழ்வுகளை உருவாக்கி, உங்களுக்குத் தேவையான முறைகளை அழைக்கவும், இதனால் உங்களுக்குத் தேவையான முடிவைப் பெறவும். வேறு வார்த்தைகளில் கூறுவதானால், இது மிகவும் அவசியமான அணுகுமுறையாகும்: உங்கள் திட்டத்தில், நீங்கள் எந்த பொருளை உருவாக்க வேண்டும், எந்த குறிப்பிட்ட முறையை எப்போது அழைக்க வேண்டும், முதலியன குறிப்பிட்ட தருணத்தை நீங்கள் வெளிப்படையாகக் குறிப்பிடுகிறீர்கள். கட்டமைப்புகளுடன், விஷயங்கள் சற்று வித்தியாசமாக இருக்கும். நீங்கள் சொந்தமாக சில வகுப்புகளை எழுதி, அவற்றில் சில தர்க்கங்களை எழுதுகிறீர்கள், ஆனால் கட்டமைப்பே உங்கள் வகுப்புகளின் நிகழ்வுகளை உருவாக்கி அவற்றின் முறைகளை அழைக்கிறது. உங்கள் வகுப்புகள் வழக்கமாக கட்டமைப்பிலிருந்து சில இடைமுகங்களைச் செயல்படுத்துகின்றன அல்லது அதன் சில வகுப்புகளைப் பெறுகின்றன, இதனால் உங்களுக்காக ஏற்கனவே எழுதப்பட்ட சில செயல்பாடுகளை உங்களுக்கு வழங்குகிறது. ஆனால் இது எப்போதும் அப்படி இல்லை. எடுத்துக்காட்டாக, ஸ்பிரிங் அத்தகைய இறுக்கமான இணைப்பைத் தவிர்க்க முடிந்தவரை முயற்சிக்கிறது (உங்கள் வகுப்புகள் நேரடியாக கட்டமைப்பில் உள்ள வகுப்புகள்/இடைமுகங்களைப் பொறுத்தது). இதை அடைய சிறுகுறிப்புகளைப் பயன்படுத்துகிறது. இதற்குப் பிறகு திரும்புவோம். ஆனால் ஸ்பிரிங் என்பது நீங்கள் பயன்படுத்தக்கூடிய வகுப்புகள் மற்றும் இடைமுகங்களின் தொகுப்பே என்பதைப் புரிந்துகொள்வது முக்கியம் :) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். நம் அனைவருக்கும் மிகவும் பரிச்சயமானவை. இன்று அவற்றில் ஒன்றை எழுதுவோம். இதனால் ஏற்கனவே உங்களுக்காக எழுதப்பட்ட சில செயல்பாடுகளை உங்களுக்கு வழங்குகிறது. ஆனால் இது எப்போதும் அப்படி இல்லை. எடுத்துக்காட்டாக, ஸ்பிரிங் அத்தகைய இறுக்கமான இணைப்பைத் தவிர்க்க முடிந்தவரை முயற்சிக்கிறது (உங்கள் வகுப்புகள் நேரடியாக கட்டமைப்பில் உள்ள வகுப்புகள்/இடைமுகங்களைப் பொறுத்தது). இதை அடைய சிறுகுறிப்புகளைப் பயன்படுத்துகிறது. இதற்குப் பிறகு திரும்புவோம். ஆனால் ஸ்பிரிங் என்பது நீங்கள் பயன்படுத்தக்கூடிய வகுப்புகள் மற்றும் இடைமுகங்களின் தொகுப்பே என்பதைப் புரிந்துகொள்வது முக்கியம் :) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். நம் அனைவருக்கும் மிகவும் பரிச்சயமானவை. இன்று அவற்றில் ஒன்றை எழுதுவோம். இதனால் ஏற்கனவே உங்களுக்காக எழுதப்பட்ட சில செயல்பாடுகளை உங்களுக்கு வழங்குகிறது. ஆனால் இது எப்போதும் அப்படி இல்லை. எடுத்துக்காட்டாக, ஸ்பிரிங் அத்தகைய இறுக்கமான இணைப்பைத் தவிர்க்க முடிந்தவரை முயற்சிக்கிறது (உங்கள் வகுப்புகள் நேரடியாக கட்டமைப்பில் உள்ள வகுப்புகள்/இடைமுகங்களைப் பொறுத்தது). இதை அடைய சிறுகுறிப்புகளைப் பயன்படுத்துகிறது. இதற்குப் பிறகு திரும்புவோம். ஆனால் ஸ்பிரிங் என்பது நீங்கள் பயன்படுத்தக்கூடிய வகுப்புகள் மற்றும் இடைமுகங்களின் தொகுப்பே என்பதைப் புரிந்துகொள்வது முக்கியம் :) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். நம் அனைவருக்கும் மிகவும் பரிச்சயமானவை. இன்று அவற்றில் ஒன்றை எழுதுவோம். அத்தகைய இறுக்கமான இணைப்பைத் தவிர்க்க ஸ்பிரிங் முடிந்தவரை முயற்சிக்கிறது (உங்கள் வகுப்புகள் நேரடியாக கட்டமைப்பில் உள்ள வகுப்புகள்/இடைமுகங்களைப் பொறுத்தது). இதை அடைய சிறுகுறிப்புகளைப் பயன்படுத்துகிறது. இதற்குப் பிறகு திரும்புவோம். ஆனால் ஸ்பிரிங் என்பது நீங்கள் பயன்படுத்தக்கூடிய வகுப்புகள் மற்றும் இடைமுகங்களின் தொகுப்பே என்பதைப் புரிந்துகொள்வது முக்கியம் :) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். நம் அனைவருக்கும் மிகவும் பரிச்சயமானவை. இன்று அவற்றில் ஒன்றை எழுதுவோம். அத்தகைய இறுக்கமான இணைப்பைத் தவிர்க்க ஸ்பிரிங் முடிந்தவரை முயற்சிக்கிறது (உங்கள் வகுப்புகள் நேரடியாக கட்டமைப்பில் உள்ள வகுப்புகள்/இடைமுகங்களைப் பொறுத்தது). இதை அடைய சிறுகுறிப்புகளைப் பயன்படுத்துகிறது. இதற்குப் பிறகு திரும்புவோம். ஆனால் ஸ்பிரிங் என்பது நீங்கள் பயன்படுத்தக்கூடிய வகுப்புகள் மற்றும் இடைமுகங்களின் தொகுப்பே என்பதைப் புரிந்துகொள்வது முக்கியம் :) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். நம் அனைவருக்கும் மிகவும் பரிச்சயமானவை. இன்று அவற்றில் ஒன்றை எழுதுவோம். ) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, நம் அனைவருக்கும் மிகவும் பரிச்சயமான மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். இன்று அவற்றில் ஒன்றை எழுதுவோம். ) ஸ்பிரிங் வலை பயன்பாடுகளுக்கு மட்டுமல்ல, நம் அனைவருக்கும் மிகவும் பரிச்சயமான மிகவும் பொதுவான கன்சோல் நிரல்களுக்கும் பயன்படுத்தப்படலாம் என்பதையும் நான் இப்போதே கவனிக்க விரும்புகிறேன். இன்று அவற்றில் ஒன்றை எழுதுவோம்.

கட்டமைப்பு

ஆனால் வசந்தம் என்பது ஒரு குறிப்பிட்ட கட்டமைப்பு மட்டுமல்ல. மாறாக, இது பல சிறிய கட்டமைப்புகளைக் குறிக்கப் பயன்படுத்தப்படும் பொதுவான பெயராகும், ஒவ்வொன்றும் அதன் சொந்த வகையான வேலையைச் செய்கின்றன. சோம்பேறிகளுக்கான வசந்தம் அறக்கட்டளை, அடிப்படைக் கருத்துக்கள் மற்றும் குறியீட்டுடன் எடுத்துக்காட்டுகள்.  பகுதி 1 - 2

https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/
படம் 2.1. வசந்த கட்டமைப்பின் கண்ணோட்டம்

நீங்கள் பார்க்க முடியும் என, வசந்த மட்டு உள்ளது. இது எங்கள் பயன்பாட்டிற்குத் தேவையான தொகுதிகளை மட்டும் இணைக்க உதவுகிறது மற்றும் நாம் வெளிப்படையாகப் பயன்படுத்தாதவற்றை இணைக்க முடியாது. எனக்குத் தெரிந்தவரை, இந்த அணுகுமுறைதான் ஸ்பிரிங் அதன் அப்போதைய போட்டியாளரை (EJB) விஞ்சி முன்னணியில் இருக்க அனுமதித்தது. EJB ஐப் பயன்படுத்தும் பயன்பாடுகள் பல சார்புகளை அவற்றின் பின்னால் இழுத்துச் சென்றன, இதன் விளைவாக, அவை மந்தமாகவும் மெதுவாகவும் மாறியது. ஸ்பிரிங் ஃபிரேம்வொர்க் பல தொகுதிகளைக் கொண்டுள்ளது என்பதை படம் காட்டுகிறது:
  • தரவு அணுகல்
  • வலை
  • கோர்
  • இன்னமும் அதிகமாக
இன்று நாம் முக்கிய தொகுதியில் காணப்படும் சில கருத்துகளுடன் பழகுவோம்: பீன்ஸ், சூழல் மற்றும் பிற. நீங்கள் யூகித்தபடி, தரவு அணுகல் தொகுதியானது தரவுகளுடன் (முக்கியமாக தரவுத்தளங்கள்) வேலை செய்வதற்கான கருவிகளைக் கொண்டுள்ளது, மேலும் வலைத் தொகுதியானது பிணையத்தில் பணிபுரிவதற்கானது (வலைப் பயன்பாடுகளை உருவாக்குவது உட்பட, இது பின்னர் விவாதிக்கப்படும்). கூடுதலாக, வசந்தத்தை ஆதரிக்கும் ஒரு விரிவான உள்கட்டமைப்பு உள்ளது: கட்டமைப்பில் அதிகாரப்பூர்வமாக சேர்க்கப்படாத பல திட்டங்கள், ஆனால் உங்கள் ஸ்பிரிங் திட்டத்தில் தடையின்றி ஒருங்கிணைக்கப்பட்டுள்ளன (உதாரணமாக, ஸ்பிரிங் செக்யூரிட்டி, இதை நான் தொட விரும்புகிறேன். இணையதளத்தில் ஒரு பயனரை அங்கீகரித்தல்).

ஜாவா ஏன் வசந்த கட்டமைப்பைக் கொண்டுள்ளது?

சரி, இது நாகரீகமானது, மென்மையாய் மற்றும் புதுமையானது என்பதைத் தவிர, ஸ்பிரிங் மூலம் நீங்கள் ஒரு சிறிய அளவிலான திறமையைப் பெற்றவுடன், உங்களிடம் இல்லாத அனைத்து வகையான வேலைகளும் எப்படி உள்ளன என்பதை நீங்கள் புரிந்துகொள்வீர்கள் என்று என்னால் இப்போதே சொல்ல முடியும். செய்ய வேண்டும், மற்றும் வசந்த காலம் எவ்வளவு வேலை செய்கிறது. நீங்கள் இரண்டு டஜன் வரி உள்ளமைவு அமைப்புகளை எழுதலாம் மற்றும் இரண்டு வகுப்புகளை எழுதலாம், மேலும் நீங்கள் வேலை செய்யும் திட்டத்துடன் முடிவடையும். ஆனால் பேட்டைக்கு அடியில் எவ்வளவு பொருட்கள் உள்ளன, எவ்வளவு வேலைகள் செய்யப்படுகின்றன, அதே திட்டத்தை எளிய சர்வ்லெட்டுகள் அல்லது சாக்கெட்டுகள் மற்றும் தூய ஜாவாவின் அடிப்படையில் செயல்படுத்தப் போகிறீர்கள் என்றால், நீங்கள் எவ்வளவு குறியீட்டை எழுத வேண்டும் என்று நீங்கள் யோசிக்க ஆரம்பித்தவுடன், உங்கள் கூந்தல் முடிவில் நிற்கும் :) வசந்தம் ஒரு வகையான மந்திரம் என்று கூட விவரிக்கப்படுகிறது. எல்லாம் செயல்படுவதை நீங்கள் காணும்போது இதை நீங்கள் அனுபவிக்கிறீர்கள், ஆனால் திரைக்குப் பின்னால் எப்படி, எவ்வளவு வேலை நடக்கிறது என்பது பற்றிய தோராயமான யோசனையும் உங்களுக்கு உள்ளது — அதனால் உண்மையில் ஏதோ ஒரு வகையான மந்திரம் செயலில் இருப்பதாகத் தெரிகிறது :) இவை அனைத்தும் எவ்வாறு ஒன்றோடொன்று இணைக்கப்பட்டுள்ளன என்பதை விளக்க முயற்சிப்பதை விட அதை மந்திரம் என்று அழைப்பது எளிது. :) ஸ்பிரிங் படிப்பதற்கு ஆதரவான இரண்டாவது வாதம் என்னவென்றால், ஜூனியர் டெவலப்பர்களுக்கான வேலை வாய்ப்புகளில் தோராயமாக 90% (எனது தனிப்பட்ட அவதானிப்புகளின் அடிப்படையில்) ஸ்பிரிங் என்ன என்பது பற்றிய அறிவு அல்லது குறைந்தபட்சம் பொதுவான யோசனை தேவை.Data, Web MVC, மற்றும் Securityதொகுதிகள் அதிநவீன டெவலப்பர்களை வழங்குகின்றன :) ஆனால் இன்று அடிப்படைகள் பற்றியது.

DI/IoC

நீங்கள் எப்போதாவது ஸ்பிரிங் பற்றி படிக்க முயற்சித்திருந்தால், முதலில் நீங்கள் சந்தித்தது இந்த சுருக்கெழுத்துக்களாக இருக்கலாம்: DI/IoC. இப்போது இந்தக் கட்டுரையிலிருந்து ஓய்வு எடுத்து DZone கட்டுரையைப் படிக்குமாறு நான் மிகவும் பரிந்துரைக்கிறேன் ! IoC என்பது கட்டுப்பாட்டின் தலைகீழ் என்பதைக் குறிக்கிறது. ஒரு நூலகத்தைப் பயன்படுத்துவது, எந்தப் பொருளை எந்த முறையில் அழைக்க வேண்டும் என்பதை உங்கள் குறியீட்டில் நீங்கள் குறிப்பிடுவதை உள்ளடக்கியது என்று நான் ஏற்கனவே எழுதியபோது இதைக் குறிப்பிட்டேன், ஆனால் ஒரு கட்டமைப்பைப் பயன்படுத்துவது பொதுவாக உங்கள் குறியீட்டை சரியான நேரத்தில் அழைக்கும் என்று அர்த்தம். வேறு வார்த்தைகளில் கூறுவதானால், இந்த பிந்தைய வழக்கில், குறியீடு/நிரலை இயக்கும் செயல்முறையை நீங்கள் இனி நிர்வகிக்கவில்லை - கட்டமைப்பானது உங்களுக்காக இதைச் செய்கிறது. நீங்கள் கட்டுப்பாட்டை கட்டமைப்பிற்கு அனுப்பியுள்ளீர்கள் (கட்டுப்பாட்டின் தலைகீழ்). DI என்பது சார்பு ஊசியைக் குறிக்கிறது. சார்பு ஊசி மூலம், நீங்கள் முக்கிய முறையில் பூனை பொருட்களை உருவாக்க வேண்டாம், பின்னர் அவற்றை உங்கள் முறைகளுக்கு அனுப்புங்கள். மாறாக, ஸ்பிரிங் ஃபிரேம்வொர்க் உங்களுக்காக அவற்றை உருவாக்குகிறது. "நான் இங்கே ஒரு பூனையைப் பெற விரும்புகிறேன்" என்று நீங்கள் எளிமையாகச் சொல்கிறீர்கள், மேலும் உங்கள் முறையில் கட்டமைப்பானது உங்களுக்கு அனுப்பப்படும். அடுத்த கட்டுரைகளில் இந்த சுருக்கத்தைப் பார்ப்போம்.

பீன்ஸ் மற்றும் சூழல்

வசந்த காலத்தில் முக்கிய கருத்துக்களில் ஒன்று பீன் ஆகும். உண்மையில், இது சில வர்க்கத்தின் ஒரு பொருள் மட்டுமே. பூனை, நாய் மற்றும் கிளி ஆகிய 3 பொருள்கள் தேவைப்படும் ஒரு நிரல் எங்களிடம் உள்ளது என்று வைத்துக்கொள்வோம். மேலும் எங்களிடம் ஒரு கொத்து வகுப்புகள் உள்ளன. சில நேரங்களில் நமக்கு ஒரு முறைக்கு ஒரு பூனை தேவை, சில சமயங்களில் நமக்கு வேறு முறைக்கு ஒரு நாய் தேவை, மற்றும் சில நேரங்களில் ஒரு பூனை மற்றும் ஒரு கிளி இரண்டும் தேவை (உதாரணமாக, பூனைக்கு உணவளிக்கும் முறை, ha-ha). இன்னும் மற்ற முறைகளுக்கு, மூன்று பொருட்களும் தேவை. ஆம், நாம் முதலில் இந்த மூன்று பொருட்களை முதன்மை முறையில் உருவாக்கலாம், பின்னர் அவற்றை எங்கள் வகுப்புகளுக்கு அனுப்பலாம், பின்னர் இந்த வகுப்புகளுக்குள் அவற்றை தொடர்புடைய முறைகளுக்கு அனுப்பலாம்... மற்றும் முழு நிரல் முழுவதும். ஆனால் எப்போதாவது எங்கள் முறைகளுக்கான உள்ளீட்டு அளவுருக்களின் பட்டியலை மாற்ற விரும்புகிறோம் என்று நினைத்தால் (உதாரணமாக, எதையாவது மீண்டும் எழுத அல்லது புதிய செயல்பாட்டைச் சேர்க்க முடிவு செய்கிறோம்), பின்னர் குறியீட்டில் சில மாற்றங்களைச் செய்ய வேண்டும். இப்போது நம்மிடம் 3 இல்லை, ஆனால் இதுபோன்ற 300 பொருள்கள் உள்ளன என்று கற்பனை செய்து பாருங்கள். ஒரு மாற்றாக நமது அனைத்து பொருட்களையும் ஒரே பட்டியலில் சேகரிப்பது (List<Object>), ஒவ்வொரு முறைக்கும் அதை அனுப்பவும், பின்னர் முறைகளுக்குள் இருக்கும் போது தேவையான பொருளைப் பெறவும். ஆனால் நிரல் இயங்கும்போது, ​​​​இந்த பட்டியலில் ஏதேனும் ஒரு பொருள் சேர்க்கப்பட்டால் அல்லது மோசமாக இருந்தால், ஒன்று நீக்கப்பட்டால் என்ன செய்வது? பட்டியலிலிருந்து பொருட்களைப் பெறுவதற்கு ஒரு குறியீட்டைப் பயன்படுத்தும் ஒவ்வொரு முறையையும் இது உடைக்கும் திறனைக் கொண்டுள்ளது. இந்தச் சிக்கலைத் தவிர்க்க, எங்கள் பொருட்களை பட்டியலில் சேமிக்காமல், வரைபடத்தில் சேமிக்க முடிவு செய்கிறோம், இதில் முக்கிய பொருள் பொருளின் பெயராகவும் மதிப்பு பொருளாகவும் இருக்கும். இது நமக்குத் தேவையான பொருட்களை அவற்றின் பெயரைப் பயன்படுத்துவதன் மூலம் எளிதாக மீட்டெடுக்க அனுமதிக்கிறது, எ.கா. get("கிளி") அல்லது திறவுகோல் பொருளின் வகுப்பாகவும், மதிப்பு பொருளாகவும் இருக்கலாம். இந்த விஷயத்தில், பொருளின் பெயரைக் குறிப்பிடுவதை விட, ஆனால் நமக்குத் தேவையான பொருளின் வகுப்பைக் குறிப்பிடலாம். அதுவும் வசதியானது. அல்லது வரைபடத்திற்கு சில வகையான ரேப்பரை எழுதலாம், அங்கு சில முறைகள் பொருள்களை அவற்றின் பெயரால் பெறுகின்றன, மற்ற முறைகள் அவற்றின் வகுப்பின் மூலம் பொருட்களைப் பெறுகின்றன. நாம் இங்கு வந்திருப்பது ஒரு என்று அழைக்கப்படுகிறதுஸ்பிரிங் கட்டமைப்பில் பயன்பாட்டு சூழல் . சூழல் என்பது பீன்ஸ் (பொருள்கள்) தொகுப்பாகும். நமக்குத் தேவையான பீன் (பொருளை) அதன் பெயரால், அதன் வகை அல்லது வேறு சில வழிகளில் பெறுவதற்கு ஒரு சூழலை அணுகுகிறோம். கூடுதலாக, நமக்குத் தேவையான பீனை அதன் சொந்த சூழலில் பார்க்கச் சென்று அதை எங்கள் முறைக்கு அனுப்புமாறு ஸ்பிரிங்ஸைக் கேட்கலாம். எடுத்துக்காட்டாக, எங்களிடம் இது போன்ற ஒரு முறை உள்ளது என்று வைத்துக்கொள்வோம்:

public void doSomething(Cat cat) {
    ...
}
ஸ்பிரிங் இந்த முறையை அழைத்தபோது, ​​​​அது எங்கள் பூனை பொருளை அதன் சூழலில் இருந்து எடுத்து முறைக்கு அனுப்பியது. ஆனால் இப்போது நாங்கள் முடிவு செய்துள்ளோம், பூனைக்கு கூடுதலாக, எங்கள் முறைக்கு ஒரு கிளியும் தேவை. வசந்த காலத்தில், எதுவும் எளிதாக இருக்க முடியாது! நாங்கள் வெறுமனே எழுதுகிறோம்:

public void doSomething(Cat cat, Parrot parrot) {
    ...
}
இப்போது ஸ்பிரிங் எங்கள் முறையை அழைக்கும்போது, ​​​​ஒரு பூனையையும் கிளியையும் கடந்து செல்ல வேண்டியதன் அவசியத்தை அது புரிந்துகொள்கிறது, எனவே அது அதன் சூழலுக்குச் சென்று, இந்த இரண்டு பொருட்களைப் பெற்று, அவற்றை எங்கள் முறைக்கு அனுப்புகிறது. கட்டுப்பாட்டின் கட்டுப்பாட்டை ஸ்பிரிங்க்கு மாற்றுவதன் மூலம், பொருட்களை உருவாக்குவதற்கும் அவற்றை எங்கள் முறைகளுக்கு அனுப்புவதற்கும் நாங்கள் பொறுப்பை மாற்றுகிறோம், அதை வசந்தம் அழைக்கும். இது கேள்வியைக் கேட்கிறது: எந்தெந்த பொருட்களை (பீன்ஸ்) உருவாக்க வேண்டும் என்பதை ஸ்பிரிங் எப்படி அறிவது?

பயன்பாட்டை உள்ளமைப்பதற்கான வழிகள்

ஒரு பயன்பாட்டை உள்ளமைக்க மூன்று முக்கிய வழிகள் உள்ளன , அதாவது, நமக்குத் தேவையான பொருள்களை ஸ்பிரிங் சரியாகக் கூறுவதற்கான வழிகள்:
  1. எக்ஸ்எம்எல் உள்ளமைவு கோப்புகள்
  2. ஜாவா அடிப்படையிலான கட்டமைப்பு
  3. தானியங்கி கட்டமைப்பு
ஸ்பிரிங் படைப்பாளிகள் இந்த வரிசையில் அவர்களுக்கு முன்னுரிமை அளிக்கிறார்கள்:
  • முன்னுரிமை அளிக்கப்பட வேண்டிய முதன்மையான முறை, தானியங்கி உள்ளமைவு ஆகும்
  • சாத்தியமான அனைத்து பீன்களையும் சரியாக உள்ளமைக்க தானியங்கி உள்ளமைவைப் பயன்படுத்த முடியாவிட்டால், ஜாவா அடிப்படையிலான உள்ளமைவைப் பயன்படுத்தவும் (இது ஜாவா குறியீட்டைப் பயன்படுத்தி பொருட்களை உருவாக்குவதை உள்ளடக்கியது)
  • மற்றும் மிகக் குறைந்த முன்னுரிமை முறை என்பது பழைய முறை - XML ​​config கோப்புகளைப் பயன்படுத்துதல்.
வசந்தம் இந்த முறைகளை இணைக்க உதவுகிறது. எடுத்துக்காட்டாக, ஸ்பிரிங் தானாக உள்ளமைக்கக்கூடிய அனைத்தையும் உள்ளமைக்க அனுமதிக்கவும், உங்களுக்கு சிறப்பு அளவுருக்கள் தேவைப்படும் இடங்களில் ஜாவா அடிப்படையிலான உள்ளமைவைப் பயன்படுத்தவும், மேலும் எந்த மரபு உள்ளமைவுகளுக்கும் XML ஐப் பயன்படுத்தவும். இவை அனைத்தும் மிகவும் நெகிழ்வானதாக இருக்கும். இருப்பினும், எல்லாவற்றையும் தானாக கட்டமைக்க முடிந்தால், அந்த விருப்பத்தைத் தேர்ந்தெடுக்கவும். நான் தானியங்கி உள்ளமைவு மற்றும் ஜாவா அடிப்படையிலான உள்ளமைவை மட்டுமே கருத்தில் கொள்வேன். XML configs இணையத்தில் வசந்தத்தின் ஒவ்வொரு உதாரணத்திலும் பயன்படுத்தப்படுகிறது. மேலும் என்னவென்றால், ஜாவா அடிப்படையிலான உள்ளமைவு எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் புரிந்துகொண்டவுடன், அதே செயலைச் செய்யும் XML கோப்பைப் படிப்பதில் உங்களுக்கு எந்தப் பிரச்சனையும் இருக்காது. நாங்கள் எழுதிய வகுப்புகளின் பொருள்களுடன் வேலை செய்ய வேண்டியிருக்கும் போது தானியங்கி உள்ளமைவு பயன்படுத்தப்படுகிறது. எங்கள் பொருள்களில் ஒன்றை உருவாக்க சில குறிப்பிட்ட தர்க்கம் தேவைப்பட்டால், அல்லது தன்னியக்க உள்ளமைவுக்குத் தேவையான சிறுகுறிப்புடன் சில வகுப்பை உருவாக்க முடியவில்லை என்றால், ஜாவா அடிப்படையிலான உள்ளமைவைப் பயன்படுத்தி என்ன செய்ய வேண்டும் என்பதைச் செய்யலாம். இல்அடுத்த பகுதி , நாங்கள் ஒரு மேவன் திட்டத்தை உருவாக்குவோம், இரண்டு முக்கிய ஸ்பிரிங் தொகுதிகளை இணைத்து, எங்கள் முதல் பீன்ஸை உருவாக்குவோம்.
கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION