Allgemeine SpringBean-Anmerkungen

 

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

 

 

Ich denke du magst

Origin blog.csdn.net/qq_42198024/article/details/108346139
Empfohlen
Rangfolge