Da ich für Spring ziemlich neu bin, habe ich eine Frage zum Kommentieren einer Klasse. Bedeutet @Component
dies beim Annotieren einer Klasse mit, dass diese Klasse eine Spring Bean und standardmäßig ein Singleton ist?
quelle
Da ich für Spring ziemlich neu bin, habe ich eine Frage zum Kommentieren einer Klasse. Bedeutet @Component
dies beim Annotieren einer Klasse mit, dass diese Klasse eine Spring Bean und standardmäßig ein Singleton ist?
Ja, das ist richtig, @Component
ist eine Spring Bean und ein Singleton.
Wenn die Klasse zur Serviceschicht gehört, möchten Sie sie möglicherweise @Service
stattdessen mit Anmerkungen versehen
Beachten Sie jedoch, dass Sie diese Zeile einfügen müssen, damit diese Anmerkungen erkannt werden applicationContext.xml
:
<context:component-scan base-package="com.yourcompany" />
Informationen zu Singletons - Spring Beans sind standardmäßig alle im Singleton-Bereich. Das einzige, was Sie beachten müssen, ist, dass Sie den Status nicht in Feldvariablen speichern sollten (sie sollten nur Abhängigkeiten enthalten). Somit ist Ihre Anwendung threadsicher und Sie benötigen nicht jedes Mal eine neue Instanz einer Bean. Mit anderen Worten, Ihre Bohnen sind staatenlos.
Standardmäßig - Ja.
Sie können dieses Verhalten jedoch mithilfe der
@Scope
Anmerkung überschreiben . Beispielsweise:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
quelle