გაზაფხულზე, „ავტოგაყვანილობა ტიპის მიხედვით“ნიშნავს, თუ bean-ის მონაცემთა ტიპი თავსებადია სხვა bean თვისების მონაცემთა ტიპთან, ავტომატური გაყვანილობა. მაგალითად, „person“bean ავლენს თვისებას „უნარების“კლასის მონაცემთა ტიპის მიხედვით, Spring იპოვის bean-ს იმავე ტიპის მონაცემთა კლასის „უნარი“და ავტომატურად დააკავშირებს მას.
შეგიძლიათ ავტომატური დაკავშირება ტიპის მიხედვით?
ეს რეჟიმი განსაზღვრავს ავტოგაყვანილობას ქონების ტიპის მიხედვით. საგაზაფხულო კონტეინერი უყურებს ლობიოს, რომელზედაც autowire ატრიბუტი არის დაყენებული byType-ზე XML კონფიგურაციის ფაილში. შემდეგ ის ცდილობს დააკავშიროს და დააკავშიროს თვისება, თუ მისი ტიპი ზუსტად ემთხვევა კონფიგურაციის ფაილში არსებულ ლობიოს სახელს.
რამდენი ტიპის ავტოგაყვანილობა არსებობს გაზაფხულზე?
ასე რომ, გაზაფხულს შეუძლია გამოიყენოს BeanFactory, რათა იცოდეს დამოკიდებულებები ყველა გამოყენებული ლობიოს შორის. XML კონფიგურაციაზე დაფუძნებული ავტომატური გაყვანილობის ფუნქციას აქვს ხუთი რეჟიმი – არა, სახელის მიხედვით, byType, კონსტრუქტორი და ავტომატური ამოცნობა. ნაგულისხმევი რეჟიმი არის არა.
რატომ ვიყენებთ @autowired ანოტაციას?
@Autowired ანოტაცია უზრუნველყოფს უფრო დეტალურ კონტროლს, თუ სად და როგორ უნდა განხორციელდეს ავტოგაყვანილობა. @Autowired ანოტაცია შეიძლება გამოყენებულ იქნას სეტერის მეთოდზე bean-ის ავტომატური დასაკავშირებლად, ისევე როგორც @Required ანოტაცია, კონსტრუქტორი, თვისება ან მეთოდები თვითნებური სახელებით და/ან მრავალი არგუმენტით.
რა არის @inject გაზაფხულზე?
@Inject არის Java ტექნოლოგიის ნაწილი, რომელსაც ეწოდება CDI, რომელიც განსაზღვრავს სტანდარტსდამოკიდებულების ინექცია გაზაფხულის მსგავსი. საგაზაფხულო აპლიკაციაში, ორი ანოტაცია მუშაობს ისევე, როგორც Spring-მა გადაწყვიტა მხარი დაუჭიროს JSR-299-ის ზოგიერთი ანოტაციის გარდა.