David Gómez Rubio

Analista funcional

Project Manager

Dirección de equipos informáticos

David Gómez Rubio

Analista funcional

Project Manager

Dirección de equipos informáticos

Artículo del Blog

Spring Framework – Inyección de dependencias utilizando la configuración de Java

Spring Framework – Inyección de dependencias utilizando la configuración de Java

En Spring a partir de la versión 4, el lugar donde se deben configurar los beans es en  los metadatos de configuración. Los metadatos de configuración se pueden definir de 4 maneras:

  1. XML
  2. Anotaciones Java
  3. Código Java
  4. Configuración maravillosa

Para la DI utilizando la configuración de Java, debe utilizar una  clase JavaConfig y anotarla con  @Configuration . Dentro de esa clase, se declaran algunos métodos que devuelven beans (instancias configuradas de ciertas clases POJO que estarán disponibles en el contexto de Spring) y estos métodos deben anotarse con @Bean . 

Aquí hay un ejemplo:

package fs.david

@Configuration
public class PersonalConfig {

@Bean
public NuestraBeanClass nuestraBeanClass {
return new NuestraBeanClass();
}
}

Es importante mencionar el hecho de que el nombre del bean en el contexto será el mismo que  el nombre del método y, si desea un nombre diferente, deberá usar el  atributo de nombre para la anotación @Bean.

@Bean(name="unNombrePersonal")

Para inyectar un bean en otro, simplemente llama al método que crea el bean y Spring intercepta la llamada para que el método devuelva el bean existente en lugar de ejecutarse nuevamente:

package fs.david

@Configuration 
public class PersonalConfig{

@Bean
public NuestraBeanClass nuestraBeanClass{
return new nuestraBeanClass();
}

@Bean 
public BeanConInyeccion beanConInyeccion(){
return new BeanConInyeccion(nuestraBeanClass());
}
}

O, alternativamente, configura un parámetro de algún tipo que ya sea un bean para el método y todo se conectará automáticamente:

package fs.david

@Configuration 
public class PersonalConfig{

@Bean
public NuestraBeanClass nuestraBeanClass{
return new NuestraBeanClass();
}

@Bean 
public BeanConInyeccion beanConInyeccion(NuestraBeanClass nuestraBeanClassObject){
return new BeanConInyeccion(nuestraBeanClassObject);
}
}

Para usar esta clase de configuración, debe usar una implementación adecuada de ApplicationContext. Por lo general, se utilizará  AnnotationConfigApplicationContext .

package fs.david

public static void main(String[] args){
ApplicationContext context = new AnnotationConfigApplicationContext(PersonalConfig.class);
NuestraBeanClass bean = context.getBean(NuestraBeanClass.class);
/*
Aquí haces algo con el bean
*/
}

El ApplicationContext puede instanciarse sin ninguna clase de configuración especificada y, en ese caso, puede proporcionarla utilizando el  método .register() .

package fs.david

public static void main(String[] args){
ApplicationContext context = new AnnotationConfigApplicationContext();
context.register(PersonalConfig.class);
context.register(Config2.class);
context.refresh();
NuestraBeanClass bean = context.getBean(NuestraBeanClass.class);
/*
Aquí haces algo con el bean
*/
}

Presta atención al  método .refresh() .

También hay algunas cosas más que mencionar sobre las clases de @Configuration:

  • Usa @Import para fusionar varias clases de @Configuration
  • Usa @Autowire y @Value dentro de las clases de @Configuration ya que estas clases son beans en sí mismas 

La combinación de estilos XML y JavaConfig es posible de las siguientes maneras:

  • La  forma centrada en XML se realiza cuando utiliza principalmente metadatos XML y una configuración de aplicación basada en XML. Por ejemplo, usa ClassPathXmlApplicationContext. En este caso, debes configurar el archivo de metadatos XML para que permita utilizar las anotaciones @Configuration y @Autowired en las clases JavaConfig que se declararán como beans. Esto se logra mediante:
<beans>
<!-- El siguiente tag habilita para @Autowired y @Configuration -->
<context:annotation-config/>

<!-- Aquí hacemos referencia a la configuración de clase declarandola como
un bean, porque cualquier clase @Configuration es un bean -->
<bean class="com.foo.AlgunaConfigClass"/>
<bean class="com.foo.AlgunaPojoBeanClass"/>
</beans>

Debido a que la anotación @Configuration está metaanotada con la anotación @Component, cualquier clase de @Configuration es candidata para el escaneo de componentes. En esencia, eso significa que puede buscar la clase JavaConfig si proporciona la siguiente línea de código en su configuración XML:

<context:component-scan base-package="com.foo"/>
  • En la  forma centrada en la configuración de JavaConfig y XML, tienes que usar la anotación @ImportResource para usar metadatos XML en una configuración JavaConfig. Puedes usarlo después de la anotación @Configuration. Con esto, estás importando la definición XML a la clase config.

Índice de contenidos Spring Boot

Taggs:
Escribe un comentario
Bursa Uyducuen iyi erkek parfümleriBursa Uyducuen iyi erkek parfümleri
HacklinkHair Transplant istanbul
hacklink
istanbul evden eve nakliyat
hair transplant
istanbul anl?k haberler
extrabet
deneme bonusu
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
casibom
casibom giri?
casibom
casibom giri?
sightcare
gamdom giri?
gamdom tr giri?
extrabet
betwoon
romabet
romabet
romabet
meritking
matbet
holiganbet
casibom
megabahis
https://deneme-bonuslarim-yeni.com/