Annotazioni di base di Spring Boot che tutti dovrebbero conoscere

Pubblicato: 2021-12-13

Java Spring Framework è un framework open source e di livello aziendale utilizzato per creare applicazioni standalone di livello produttivo che vengono eseguite su Java Virtual Machine (JVM). A tal fine, Java Spring Boot è uno strumento che semplifica e accelera lo sviluppo di applicazioni web e microservizi con lo Spring Framework. Per questo, Java Spring Boot sfrutta tre funzionalità principali: l'autoconfigurazione, un approccio supponente alla configurazione e il potenziale per creare applicazioni standalone. La fusione di queste funzionalità di base fornisce uno strumento che consente agli sviluppatori di configurare applicazioni basate su Spring con configurazioni minime.

Prima delle annotazioni, il comportamento di Spring Framework era principalmente controllato dalla configurazione XML. Tuttavia, le annotazioni di Spring Boot hanno modificato notevolmente il modo in cui è possibile configurare i comportamenti di Spring Framework.

In questo articolo, esamineremo alcune delle annotazioni di base in Spring Framework.

Sommario

Cosa sono le annotazioni Spring Boot?

Le annotazioni Spring Boot sono una forma di metadati. Non fanno di per sé una parte dell'applicazione in fase di sviluppo, ma forniscono dati supplementari su un programma. Le annotazioni non hanno alcun impatto diretto sul funzionamento del codice che annotano, né alterano l'azione del programma compilato.

Le applicazioni a molla richiedono un grado significativo di configurazione. Spring Boot è un framework supponente che si basa su Spring Framework. Riduce al minimo gli sforzi di configurazione e standard necessari per iniziare. Le annotazioni Spring Boot sono la chiave per ottenere il controllo su Spring Framework, dirigere il framework e sovrascrivere i suoi valori predefiniti quando necessario. Queste annotazioni sono facili da usare e più veloci rispetto alla creazione da zero delle funzionalità equivalenti.

Annotazioni Spring Boot che tutti dovrebbero sapere

Sebbene Spring Boot funzioni su Java, Groovy e Kotlin, ci concentreremo su Java mentre discutiamo delle importanti annotazioni di Spring Boot.

1. @Configurazione

@Configuration viene utilizzato nelle classi che definiscono i bean. Un analogo del file di configurazione XML è un'annotazione a livello di classe utilizzata come origine delle definizioni dei bean. Una classe Java annotata con @Configuration è una configurazione in sé e dispone di metodi per configurare e creare un'istanza delle dipendenze.

Esempio:

@Configurazione

Autobus di classe pubblica

{

@Motore BeanBus()

{

restituire nuovo Bus();

}

}

2. @Fagiolo

Un'alternativa al tag XML <bean>, l'annotazione @Bean viene utilizzata a livello di metodo per indicare che un metodo produce un bean che deve essere gestito dal contenitore Spring. Questa annotazione funziona insieme a @Configuration per creare i bean Spring. @Configuration ha metodi per configurare e creare un'istanza delle dipendenze e tali metodi sono annotati da @Bean.

Esempio:

@Fagiolo

Public BeanEsempio beanEsempio ()

{

restituisci un nuovo BeanExample (),

}

3. @ComponentScan

L'annotazione @ComponentScan viene utilizzata per eseguire la scansione di un pacchetto di bean. Viene utilizzato insieme all'annotazione @Configuration per far conoscere a Spring i pacchetti che devono essere scansionati per i componenti annotati.

Esempio:

@ComponentScan(basePackages = “com.xyz”)

@Configurazione

ScanComponent di classe pubblica

{

//…

}

4. @Componente

L'annotazione @Component viene utilizzata sulle classi per denotare un componente Spring. È un'annotazione a livello di classe che converte la classe in Spring bean durante la scansione automatica.

Esempio:

@Componente

Insegnanti di classe pubblica

{

……

}

5. @EnableAutoConfiguration

L'annotazione @EnableAutoConfiguration viene in genere inserita nella classe dell'applicazione principale e definisce implicitamente un pacchetto di ricerca di base. In base alle impostazioni del percorso di classe, alle varie impostazioni delle proprietà e ad altri bean, @EnableAutoConfiguration indirizza Spring Boot per iniziare ad aggiungere i bean.

6. @SpringBootApplication

L'annotazione @SpringBootApplication aggiunge tre annotazioni: @Configuration, @EnableAutoConfiguration e @ComponentScan. Viene utilizzato nella classe dell'applicazione durante la configurazione del progetto Spring Boot e la classe annotata con @SpringBootApplication viene inserita nel pacchetto di base. @SpringBootApplication esegue la scansione dei componenti, ma solo dei sottopacchetti.

7. @Repository

L'annotazione @Repository viene utilizzata sulle classi Java che accedono direttamente al database. Funziona come un marker per le classi che svolgono il ruolo di Data Access Object o repository.

Esempio:

@Repository

TestRepository di classe pubblica

{

cancellazione del vuoto pubblico()

{

// codice di persistenza

}

}

8. @Servizio

È un'annotazione a livello di classe che contrassegna una classe Java che esegue un servizio come l'esecuzione di logica aziendale, l'esecuzione di calcoli o la chiamata di API esterne. Un'annotazione @Service è una forma speciale dell'annotazione @Component da utilizzare nel livello di servizio.

Esempio:

@Servizio

TestService di classe pubblica

{

servizio pubblico vuoto1()

{

// codice aziendale

}

}

9. @Autocablato

Questa annotazione inserisce implicitamente la dipendenza dall'oggetto e viene applicata a campi, costruttori e metodi setter. Quando @Autowired viene utilizzato sui campi e i valori per i campi vengono passati utilizzando il nome della proprietà, Spring assegna automaticamente i campi con i valori passati.

10. @Controller

L'annotazione @Controller viene utilizzata sulle classi Java che fungono da controller in un'applicazione. Consente il rilevamento automatico delle classi di componenti nel percorso di classe e anche la registrazione automatica delle definizioni dei bean per esse. L'annotazione @Controller viene in genere utilizzata con @RequestMapping e le classi Java annotate con @Controller possono gestire più mappature di richieste.

Esempio:

@Controllore

@RequestMapping ("auto")

CarsController di classe pubblica

{

@RequestMapping(value= “/{name}”, metodo= RequestMethod.GET)

dipendente pubblico getCarsByName()

{

Auto di ritornoModello;

}

}

11. @RequestMapping

L'annotazione @RequestMapping viene utilizzata sia a livello di metodo che di classe. Serve a mappare le richieste Web su metodi e classi di gestori specificati. Quando @RequestMapping viene utilizzato sui metodi, fornisce l'URL su cui avverrà l'esecuzione dei metodi del gestore. Al contrario, quando l'annotazione viene utilizzata a livello di classi, crea un URL di base per il quale verrà utilizzato il controller. Quindi, ogni metodo del gestore avrà la rispettiva mappatura delle richieste, mentre la mappatura delle richieste a livello di classe rimane la stessa.

Esempio:

@Controllore

FlowersController di classe pubblica

{

@RequestMapping ("/colore rosso/fiori")

public String getAllFlowers(Modello)

{

//codice dell'applicazione

restituire “lista dei fiori”;

}

12. @Qualificatore

@Qualifier viene utilizzato insieme a @Autowired quando è necessario un maggiore controllo sul processo di iniezione delle dipendenze. L'annotazione @Qualifier può essere specificata sui parametri del metodo o sui singoli argomenti del costruttore. Di solito sorgono confusione quando lo sviluppatore crea più di un bean dello stesso tipo, ma solo uno di essi deve essere collegato a una proprietà. L'annotazione @Qualifier è utile per eliminare queste confusioni.

Esempio:

@Componente

la classe pubblica BeanB1 implementa BeanInterface {

//

}

@Componente

la classe pubblica BeanB2 implementa BeanInterface {

//

}

Nell'esempio sopra, BeanInterface è implementato dai due bean BeanB1 e BeanB2. Ora, se BeanA collega automaticamente questa interfaccia, Spring non saprebbe quale delle due implementazioni dovrebbe iniettare. Puoi risolvere questo problema usando l'annotazione @Qualifier. Con questa annotazione in atto, Spring saprà quale dei bean cablare automaticamente.

@Componente

classe pubblica BeanA {

@Autocablato

@Qualifier("beanB2")

dipendenza BeanInterface privata;

}

13. @Valore

L'annotazione @Value viene utilizzata a livello di campo, parametro del metodo e parametro del costruttore. Denota un'espressione di valore predefinita per il parametro o il campo con cui inizializzare la proprietà.

14. @Pigro

L'annotazione @Lazy viene applicata alle classi dei componenti. All'avvio, tutte le dipendenze cablate automaticamente vengono create e configurate per impostazione predefinita. Ma l'annotazione @Lazy può essere utilizzata se lo sviluppatore desidera inizializzare un bean in modo pigro. Pertanto, il bean viene creato e inizializzato solo su richiesta. L'annotazione @Lazy può essere utilizzata anche sulle classi @Configuration, il che significa che tutti i metodi @Bean in quella @Configuration verranno avviati pigramente.

Sebbene questo elenco di annotazioni di Java Spring Boot non sia esaustivo, copre più o meno quelle più basilari che ogni sviluppatore o appassionato di Java dovrebbe conoscere. Dopotutto, Spring Boot ha semplificato lo sviluppo di applicazioni basate su Spring e vale la pena conoscerlo.

Master of Science in Data Science presso la Liverpool John Moores University

Se sei un aspirante scienziato dei dati, ecco un'opportunità per imparare dai migliori. upGrad offre un Master of Science online in Data Science in collaborazione con la Liverpool John Moores University, appositamente progettato per i professionisti che desiderano affinare le proprie capacità e conoscenze di scienza dei dati.

Ecco alcuni punti salienti del programma a colpo d'occhio:

  • Master presso LJMU ed Executive PGP presso IIT Bangalore
  • Oltre 500 ore di apprendimento ricche di sessioni dal vivo, casi di studio e progetti
  • Copertura completa di oltre 14 strumenti e software
  • Tre specializzazioni uniche
  • Assistenza professionale dedicata a 360 gradi
  • Apprendimento tra pari e networking industriale

I programmi di apprendimento immersivo e rilevanti per il settore di upGrad hanno avuto un impatto su oltre 500.000 professionisti che lavorano in tutto il mondo e continuano a stabilire standard elevati nel settore EdTech superiore. Quindi, candidati oggi e unisciti alla base di oltre 40.000 studenti globali sparsi in 85 paesi!

Impara i corsi di scienza dei dati online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Qual è lo scopo dell'avviatore Spring Boot?

Gli avviatori Spring Boot sono descrittori di dipendenze che consentono di aggiungere jar nel percorso di classe. Ogni avviatore ha il seguente modello di denominazione nel framework Spring Boot: spring-boot-starter-*, dove * rappresenta un particolare tipo di applicazione.

Qual è la differenza tra @SpringBootApplication e @EnableAutoConfiguration?

Il compito principale di @EnableAutoConfiguration è abilitare le funzionalità di configurazione automatica dell'applicazione Spring Boot. Al contrario, @SpringBootApplication combina tre annotazioni: @ComponentScan per la scansione dei componenti, @Configuration per la configurazione basata su Java sul framework Spring e @EnableAutoConfiguration per consentire la configurazione automatica nelle applicazioni Spring Boot.

L'avvio primaverile può essere eseguito senza SpringBootApplication?

Non è obbligatorio utilizzare @SpringBootApplication per creare un'applicazione Spring Boot. Puoi comunque utilizzare @EnableAutoConfiguration e @Configuration singolarmente.