2012-10-18 22 views
8

Come posso creare una nuova annotazione basata su un'annotazione Spring @Service o @Component?Come posso creare una nuova annotazione?

Voglio solo cambiare il nome per un uso più semantico: ad esempio cambiare il nome in @TransactionelService.

risposta

10

È possibile creare la propria annotazione (ad esempio @MyComponent) annotata con l'annotazione della molla corrispondente. Ad esempio:

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.RUNTIME) 
@Documented 
@Component 
public @interface MyComponent { 
} 
+1

+1 userebbe '@ Service' invece di '@ Componente' come user lo userà per il livello di servizio. '@ Servizio' utilizza internamente' @ Componente'. –

+0

Quindi, anziché l'annotazione '@ Componente', è possibile utilizzare l'annotazione' @ Servizio' per creare nuove annotazioni come '@ Servizio'. –

0

meta-annotazioni:

annotazioni che possono essere usate per annotare altre annotazioni.

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.RUNTIME) 
@Service 
@Transactional(timeout = 60) 
public @interface MyTranscationalService{ 
} 

--Questo riconosce il codice precedente e scansiona il codice di seguito anche

e possiamo usare MyTranscationalService come annotazioni per altre classi

@MyTranscationalService 
public class TransferImpl implements TransferService{ 
} 
Problemi correlati