English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Breve introduzione agli annotazioni di Spring

Componenti core di SpringMVC

DispatcherServlet —> controller, punto di ingresso delle richieste
HanderMapping —> controller, distribuzione delle richieste
Controller —> controller, flusso di elaborazione delle richieste
ModelAndView —> modello, encapsula i risultati del trattamento aziendale e la vista
ViewResolver —> vista, gestore di visualizzazione

Flusso di elaborazione

Il browser invia una richiesta a Spring, che viene consegnata al DispatcherServlet di front-end per l'elaborazione.

Il controller trova il componente Controller corrispondente tramite HanderMapping per elaborare la richiesta.

Esegue il metodo concordato del componente Controller per elaborare la richiesta, chiama il componente modello per completare il trattamento del business nel metodo concordato, il metodo concordato può restituire un oggetto ModelAndView, che impacchetta i dati di risultato del trattamento del business e il nome della vista.

Dopo aver ricevuto ModelAndView, il controller chiama il componente ViewResolver per localizzare la vista (JSP) e trasmettere le informazioni, generando il risultato dell'interfaccia di risposta.

La configurazione dei commenti ha molti vantaggi rispetto alla configurazione XML:

Può sfruttare al massimo il meccanismo di riflessione di Java per ottenere informazioni sulla struttura delle classi, queste informazioni possono ridurre efficacemente il lavoro di configurazione. Ad esempio, quando si configura l'ORM tramite annotazioni JPA, non è necessario specificare il nome dell'attributo, il tipo del PO, ecc., se i campi della tabella relazionale e i nomi degli attributi del PO e i tipi sono identici, è possibile anche non scrivere informazioni di mappatura degli attributi - perché queste informazioni possono essere ottenute tramite il meccanismo di riflessione di Java.

I commenti e il codice Java sono presenti in un file, mentre la configurazione XML utilizza un file di configurazione indipendente. La maggior parte delle informazioni di configurazione non viene modificata dopo la conclusione dello sviluppo del programma. Se le informazioni di configurazione e il codice Java vengono messi insieme, aiuta a migliorare l'integrità del programma. Utilizzando un file di configurazione XML indipendente, gli sviluppatori devono spesso passare tra il file del programma e il file di configurazione, e questa discontinuità di pensiero può ridurre l'efficienza di sviluppo.

Componente Controller

Il componente Controller è responsabile dell'esecuzione di trattamenti specifici di business, è necessario implementare l'interfaccia Controller e i metodi concordati durante la scrittura.

Componente ModelAndView

Il componente Controller, dopo aver concordato il componente, restituisce un oggetto ModelAndView, che impacchetta i dati del modello di elaborazione e le informazioni di vista.

Il costruttore ModelAndView è il seguente:

-ModelAndView(String viewName)

-ModelAndView(String viewName, Map modello)

dove viewName è il nome della pagina JSP, i dati del modello vengono memorizzati negli attributi della richiesta.

Componente HanderMapping

Attraverso il componente HanderMapping, il controller DispatcherServlet può mappare le richieste HTTP ai componenti Controller.

-SimpleUserHandlerMapping mantiene una relazione di mappatura tra richieste HTTP e Controller (map) chiamando il Controller in base alla corrispondenza della lista.

SimpleUserHandlerMapping utilizza

<bean class="">
 <property name="mappings">
  <props>
   <prop key="/login.form">loginController</prop>
   <props >
  </prop key="/hello.form">helloController</prop>
 </property>
</bean>
<bean id="helloController" class="org.test.HelloController"/>

Il tag helloController presente nel SimpleUserHandlerMapping corrisponde al bean con id helloController nel tag bean sottostante.

RequestMappingHandlerMapping
ResquestMappingHandlerAdapter

Sull'interfaccia e sul metodo del Controller utilizzare l'annotazione @ResquestMapping per specificare la richiesta HTTP corrispondente.

Componente ViewResolver

Tutti i componenti Controller restituiscono un'istanza di ModelAndView, che contiene il nome della vista. Le viste in Spring sono identificate dal nome, e il risolutore di viste ViewResolver lo risolve in base al nome.

InternalResourceViewResolver impacchetta Servlet e JSP, esempio di utilizzo:

<bean id="jspViewResolver" class="">
 <property name="prefix" value="/WEB-INF/jsp/"/>
 <property name="suffix" value=".jsp"/>
</bean>

Ad esempio: il nome di vista hello può essere mappato a /WEB-INF/hello.jsp attraverso la configurazione sopra riportata.

Annotazione Controller

Di solito utilizziamo l'annotazione @Controller per dichiarare il componente Controller, il che rende tutto più flessibile, evitando di implementare l'interfaccia Controller come nel caso precedente.

@Controller
public class HelloController{
 public String execute(){
  return "Hello";
 }
}

Per utilizzare l'annotazione sopra citata, è necessario attivare la scansione delle annotazioni:

<context:component-scan base-package="org.test.controller">

All'interno di base-package viene specificato il pacchetto in cui si trova il componente Controller.

Annotazione ResquestMapping

ResquestMapping indica quale classe o metodo corrisponde a quale richiesta.

@Controller
@ResquestMapping("/test1")
public class HelloController{
 @ResquestMapping("/hello.form")
 public String helloExecute(){
  return "Hello";
 }
}

Se si desidera utilizzare RequestMapping, è necessario definire due componenti bean RequestMappingHandlerMapping (definizione della classe) e RequestMappingAdapter (definizione del metodo) nel file di configurazione XML di Spring, ad esempio (la versione 3.1 di Spring richiede la definizione):

<bean class=".......RequestMappingMapping"/>
<bean class=".......RequestMappingAdapter"/>

La versione 3.2 di Spring non richiede la definizione

<mvc:annotation-driven/>

Conclusione

Questo è tutto il contenuto dell'introduzione alle annotazioni di Spring di questo articolo, spero che sia utile a tutti. Chi è interessato può continuare a consultare altre sezioni correlate di questo sito, e se c'è qualcosa di insufficiente, è benvenuto a lasciare un commento. Grazie per il supporto degli amici di questo sito!

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright è di proprietà del rispettivo proprietario, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene il diritto di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di copyright, sei invitato a inviare una e-mail a notice#oldtoolbag.com (sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare