Inhaltsverzeichnis:
1. Spring Bean im Zusammenhang
1 .1. @Autowired
1 .2. Komponente, @ Repository, @ Service, @ Controller
1 .3. @ RestController
1 .4. @Umfang
1 .5. Aufbau
1. Spring Bean im Zusammenhang
1 .1. @Autowired
Objekte automatisch in die Klasse importieren, und die injizierte Klasse muss auch vom Spring-Container verwaltet werden. Beispielsweise wird die Service-Klasse in die Controller-Klasse injiziert.
@Service
public class UserService {
......
}
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
......
}
1 .2. Komponente, @ Repository, @ Service, @ Controller
Im Allgemeinen verwenden wir die Annotation @Autowired, damit der Spring-Container die Bean automatisch für uns zusammenbaut. Wenn Sie eine Klasse als eine Klasse identifizieren möchten, die für @ Autowired-Annotationen für die automatische Zusammenstellung von Beans verwendet werden kann, können Sie die folgenden Annotationen verwenden:
@Component: Allgemeine Anmerkung: Sie können jede Klasse als Spring-Komponente markieren. Wenn eine Bean nicht weiß, zu welcher Ebene sie gehört, kann sie mit der Annotation @Component versehen werden.
@Repository: Entspricht der Persistenzschicht Dao-Schicht, die hauptsächlich für datenbankbezogene Vorgänge verwendet wird.
@Service: Entspricht der Service-Schicht, die hauptsächlich eine komplexe Logik beinhaltet, und die Dao-Schicht wird benötigt.
@Controller: Entsprechend der Spring MVC-Steuerungsschicht akzeptiert der Hauptbenutzer Benutzeranforderungen und ruft die Serviceschicht auf, um Daten an die Front-End-Seite zurückzugeben.
1 .3. @ RestController
Objekte automatisch in die Klasse importieren, und die injizierte Klasse muss auch vom Spring-Container verwaltet werden. Beispielsweise wird die Service-Klasse in die Controller-Klasse injiziert.
Die Annotation @RestController ist eine Sammlung von @Controller und @ResponseBody, die angibt, dass es sich um eine Controller-Bean handelt. Der Rückgabewert der Funktion wird direkt in den HTTP-Antworttext eingegeben, der ein Controller im REST-Stil ist.
Brother Guide: Jetzt ist es die Trennung von Vorder- und Rückseite. Um ehrlich zu sein, habe ich @Controller schon lange nicht mehr verwendet. Wenn Ihr Projekt zu alt ist, behandeln Sie es einfach so, als hätte ich es nicht gesagt.
Die alleinige Verwendung von @Controller ohne @ResponseBody wird im Allgemeinen verwendet, wenn Sie eine Ansicht zurückgeben möchten. Diese Situation ist eine traditionellere Spring MVC-Anwendung, die der Situation entspricht, in der das vordere und hintere Ende nicht getrennt sind. @Controller + @ ResponseBody gibt Daten im JSON- oder XML-Format zurück
1 .4. @Umfang
Deklarieren Sie den Umfang von Spring Bean. Verwenden Sie die folgende Methode:
Der Umfang von vier gängigen Frühlingsbohnen:
@Bean
@Scope("singleton")
public Person personSingleton() {
return new Person();
}
Singleton: Die einzige Bean-Instanz, Beans in Spring, sind standardmäßig Singletons.
Prototyp: Bei jeder Anforderung wird eine neue Bean-Instanz erstellt.
Anfrage: Jede HTTP-Anfrage generiert eine neue Bean, die nur in der aktuellen HTTP-Anfrage gültig ist.
Sitzung: Jede HTTP-Anforderung generiert eine neue Bean, die nur in der aktuellen HTTP-Sitzung gültig ist.
1 .5. Aufbau
Im Allgemeinen zum Deklarieren von Konfigurationsklassen verwendet, können Sie stattdessen die Annotation @Component verwenden. Die Verwendung von Konfigurationsanmerkungen zum Deklarieren von Konfigurationsklassen ist jedoch semantischer.
@Configuration
public class AppConfig {
@Bean
public TransferService transferService() {
return new TransferServiceImpl();
}
}
Referenzlink:
https://snailclimb.gitee.io/javaguide/#/./docs/system-design/framework/spring/spring-annotations
andere
Verstehst du Autowired- und Ressourcenanmerkungen, denen Autowired (Spring) gehört?
https://www.zhihu.com/question/39356740
(1) Autowired Annotation dient zum Zusammenstellen abhängiger Objekte nach Typ
Die Ressource wird standardmäßig nach Namen zusammengestellt
(2) Ressource: JDK
Autowired: Frühling
Was ist der Unterschied zwischen @Component und @Bean?
(1) Unterschiedliche Ziele
(2) Scannen von Klassenpfaden
(3) Mehr Anpassung
https://segmentfault.com/a/1190000005626375