Bei Verwendung des Komponenten -Scans müssen Sie jetzt den Scan -Pfad in der XML -Konfiguration angeben
<Kontext: component-scan backpackage = "yangjq.test">
Container -Instanziierung scannt alle Komponentenklassen unter dem Yangjq.test -Paket und seinem Unterpackungsverfahren.
Erst wenn Komponentenklassdefinitionen die folgenden Annotationsmarken vorausgehen, werden diese Komponentenklassen in den Federbehälter gescannt.
- @Component General Annotation
- @Name General Annotation
- @repository Persistenzschichtkomponent Annotation
- @Service Business Layer Component Annotation
- @Controller Control Layer Component Annotation
Name
Die Komponente generiert während des Scanvorgangs einen Standard -ID -Wert (Klassenname beginnt mit Kleinbuchstaben). Dies kann auch in der Annotationsmarke angepasst werden, wie z. B.:
// Dies ist die Standard -ID, der Wert ist Oracleuserdao@repositoryPublic -Klasse OraclUserdao implementiert Userdao {} // Dies ist eine benutzerdefinierte ID, der Wert ist loginService@service ("LoginService") public class UserService {}Komponentenbereich
Der Standardumfang der federverwalteten Komponenten ist "Singleton". Wenn Sie andere Bereiche benötigen, können Sie @Scope Annotation verwenden. Geben Sie einfach den Spielraumnamen in der Annotation an.
@Scope ("Prototyp")@repositoryPublic -Klasse Oracleuserdao implementiert UserDao {}Initialisierung und Zerstörung
@Postconstruct und @Predestroy Annotation -Tags werden verwendet, um die Initialisierungs- und Zerstörungs -Rückrufmethoden anzugeben, wie z. B.:
public class Beispielbean {@postconstruct public void init () {// ......... Initialisierung} @Predestroy public void destoAnnotation für Bohnen mit Abhängigkeitsinjektionsbeziehung
Es kann eine der folgenden Aussagen verwenden, um die relationale Injektion umzusetzen
- @resource
- @AutoWired/ @Qualifier
- @inject/ @genannt
Normalerweise werden viele @Resources verwendet. Sprechen wir also über @Resource. Wenn Sie die anderen verwenden, suchen Sie und lesen Sie sie.
@Resource Annotation -Tags können vor Felddefinitionen oder Setter -Methodendefinitionen verwendet werden. Standardmäßig wird zuerst die Übereinstimmungsinjektion mit Namen verwendet und dann die Übereinstimmungsinjektion eingeben.
public class UserSerivce {//@ressource Dies wird verwendet, um private userDao userDao; @Resource // zu definieren, um der Setter -Methode public void setSerdao (userDao dao) {this.userdao = Dao;}}} vorzugehen.Ein Fehler tritt auf, wenn mehrere passende Bohnen auftreten. Sie können einen Namen explizit angeben, wie z.
Zusammenfassen
Das obige ist die detaillierte Erklärung des Annotations-basierten Komponenten-Scans, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!