Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

243
Visualizações
¿Qué es la anotación para <task:annotation-driven> en Spring 4.3?

Estoy actualizando mi aplicación de Spring 3.x a Spring 4.3. Y en lugar de la configuración xml, quiero la configuración java (anotación). No puedo hacer la configuración usando la anotación.

 <task:executor id="executor" pool-size="8-25" queue-capacity="100" /> <task:scheduler id="scheduler" pool-size="10" /> <context:component-scan annotation-config="true" base-package="com.jobs"/> <task:annotation-driven executor="executor" scheduler="scheduler" />

Dónde y cómo configurar la configuración anterior usando anotación. Y quiero aplicar la configuración xml anterior para seguir MyClassName.java

 <bean id="mcn" class="com.jobs.MyClassName"> <property name="username" value="...."/> <property name="authorities"> <list> <value>....</value> </list> </property> </bean>

Intenté como la siguiente configuración usando anotación pero obteniendo una excepción:

 Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanInitializationException: Properties 'authorities' and 'username' are required for bean 'myClassName'

MiNombreDeClase.java

 @Component public class MyClassName{ @Value("CronUser") private String username; //@Value("#{'ROLE_SYSTEM'.split(',')}") @Value("#{'ROLE_SYSTEM'}") private List<String> authorities; @Required public void setUsername(final String aUsername) { username = aUsername; } @Required public void setAuthorities(final List<String> aAuthorities) { authorities = aAuthorities; } }

SprinQuartzJobConfig.java

 package com.config; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @Configuration @EnableAsync @EnableScheduling @ComponentScan({"com.jobs"}) public class SpringQuartzJobConfig { @Bean public Executor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(100); executor.setMaxPoolSize(8-25); executor.setQueueCapacity(100); executor.initialize(); return executor; } @Bean public Executor taskScheduler() { // set properties if required ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(10); return scheduler; } }

¿Qué es la anotación para la configuración xml anterior?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Use @EnableScheduling y @EnableAsync respectivamente para reemplazar el programador y el ejecutor <task:annotation-driven> en la clase de configuración que se vería como a continuación

 @Configuration @EnableAsync @EnableScheduling @ComponentScan({"com.jobs","com.my.package.second"}) public class DemoApplication { @Bean public Executor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(100); executor.setMaxPoolSize(75); executor.setQueueCapacity(50); executor.initialize(); return executor; } @Bean public Executor taskScheduler() { // set properties if required return new ThreadPoolTaskScheduler(); } @Bean public MyClassName myClass() { MyClassName className = new MyClassName(); // set properties return className; } }

Consulte los documentos aquí para obtener más detalles.

EDITAR ( error de publicación informado por OP )

Un par de cosas con respecto a MyClassName

  • Reemplace @Configuration' & @ComponentScan with @Component` ya que debería ser un bean de primavera y no una configuración.
  • El campo nombre de @Autowired userName que su valor se proporciona a través @Value
  • Las authorities de campo tampoco requieren @Autowired . Sin embargo, la sintaxis debe corregirse como @Value("#{'${ROLE_SYSTEM}'.split(',')}") si ROLE_SYSTEM se define en el archivo de propiedades como ROLE_SYSTEM=foo,bar,alpha,delta
  • Todas las apariciones de @Required deben eliminarse ya que esencialmente todos los campos @Autowired son obligatorios de forma predeterminada a menos que se especifique lo contrario a través @Autowired(required = false)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda