7
votes

Spring @configuration (configuration non XML) pour les tâches axées sur l'annotation

Quelqu'un peut-il expliquer comment effectuer une configuration de base d'une tâche à l'aide de l'annotation @schedulée sans aucune configuration XML? Tous les exemples que je peux trouver utiliser au moins une configuration XML minimale. Par exemple:

http: //blog.springsource .COM / 2010/01/05 / SPALEMINATION DE TRAVAILLAGE-SIMPLESSIONS-3-0 / P>

Ceci utilise un type typique: P>

  <context:component-scan base-package="org/springframework/samples/task/basic/annotation"/> 
  <task:annotation-driven/>


0 commentaires

4 Réponses :


4
votes

Le L'annotation finit par déclarer un planificateurAnnotationBepoCrocesseur pour lire les annotations @schedulées dans votre code. Voir ici: http: //static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/scheduling/annotation/scheduledannotationbeanpostProcessor.html .

qui prend soin de la Ligne. Pour obtenir la numérisation du composant, vous devez utiliser AnnotationConfigApplicationContext. Pas sûr si / comment cela fonctionne avec un conteneur Web cependant.


2 commentaires

Notez que même si mon lien est à 3.1 Documents, le planificateurAnnotationBepoCrocesseur existe également pour 3.0.


Oui, déclarant le planificateurAnnotationBeanpoCessor dans la classe \ @Configuration en tant que \ @bean semble fonctionner - ce qui signifie qu'il accomplit la tâche: l'annotation a fait.



3
votes

Au printemps 3.0, vous avez toujours besoin de ce petit morceau de XML. Cependant, le printemps 3.1 (toujours en version bêta) introduit des options d'annotation supplémentaires pour fermer l'écart, supprimant tout besoin de la configuration XML.

voir Cette entrée de blog Pour comment ça se fait. Soyez très prudent avant d'utiliser des versions bêta du printemps dans le code de production, mais ils sont vraiment instables.


0 commentaires

16
votes

Il suffit d'ajouter @enablesCHEDULER sur votre classe WebMVCCONFIG

@Configuration
@EnableWebMvc
@EnableAsync
@EnableScheduling
public class WebMvcConfig extends WebMvcConfigurerAdapter {
   /** Annotations config Stuff ... **/
}


1 commentaires

Oui, la question était avant le printemps 3.1 était disponible.