¿Que es un Spring Bean?

By | 20 agosto 2013

Un bean en Spring no es mas que un objeto configurado e instanciado en el contenedor de Spring.

Todos los beans permanecen en el contenedor durante toda la vida de la aplicación o hasta que nosotros los destruyamos.

Spring se basa en este concepto de beans almacenados en el contenedor para implementar la mayoría de sus características, como la inyección de dependencias.

Tener los beans en el contenedor nos permite inyectarlos en otros beans, reutilizarlos, o poder acceder a ellos desde cualquier lugar de la aplicación en el momento que queramos.

Veamos un ejemplo muy simple, para ello vamos a crear una clase con un atributo y sus respectivos getters y setters.

@Service("sillyService")
public class SillyClass {

private String string = "Silly string.";

public String getString() {
return string;
}

public void setString(String string) {
this.string = string;
}

}

Esta clase la marcamos con @Service para indicarle a Spring que se trata de una clase que queremos que sea instanciada en el contenedor, ya que ofrece un servicio concreto.

Ahora esta clase esta disponible desde cualquier parte de la aplicación. Así podremos acceder a ella desde un JSP, inyectarla en otro bean, controlador, etc…

Para acceder a string desde un JSP utilizamos JSTL especificando el nombre del bean.

${sillyService.string}

Para que ViewResolver pueda acceder a los beans del contenedor hay que activarle la propiedad exposeContextBeansAsAttributes a true.

Para inyectar sillyService en cualquier otro bean o controlador de Spring utilizamos @Autowired.

@Autowired
private SillyClass sillyService;
Comparte esta entrada enShare on LinkedIn0Tweet about this on Twitter0Share on Facebook0Share on Google+0

2 thoughts on “¿Que es un Spring Bean?

  1. chwilowki

    My brother recommended I might like this blog. He was totally right. This post actually made my day. You cann’t imagine just how much time I had spent for this info! Thanks!

  2. admin Post author

    I like it. Enjoy every things might you could need of this blog and do any of your questions that you may have.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *