Spring Community Day Lima 2009: Primera reunión
Escrito por Lennon Shimokawa   
Jueves 24 de Septiembre de 2009 12:21

Primera reunión de coordinación para el Spring Community Day Lima 2009

Fecha: Jueves 24/09
Hora: 7:30pm
Lugar: Starbucks Morelli (Jr. Morelli 279, San Borja, por Plaza Vea de
Aviación con Javier Prado)

Agenda:
1. Definir estructura del evento
2. Recibir propuestas de expositores
3. Definir expositores
4. Definir el User Story y el alcance de la demo
5. Organizar comisiones (inscripciones, publicidad, video, etc)

Todos están invitados a asistir.

 
Spring Community Day Lima 2009: Organización
Escrito por Lennon Shimokawa   
Miércoles 23 de Septiembre de 2009 12:54

Comenzaron las tareas de organización para el Spring Community Day Lima 2009!

Pueden seguir los hilos creados en la lista de correos de la comunidad:
http://groups.google.com.pe/group/spring-user-group-peru

Ultima actualización Miércoles 23 de Septiembre de 2009 16:06
 
Presentaciones de SpringOne Europe 2009
Escrito por Lennon Shimokawa   
Martes 26 de Mayo de 2009 11:41
Las presentaciones del evento SpringOne Europe 2009 están disponibles aquí.
Ultima actualización Miércoles 23 de Septiembre de 2009 16:05
 
Lo nuevo en Spring 3.0
Escrito por Lennon Shimokawa   
Martes 26 de Mayo de 2009 11:31

Presentación para el evento Spring Live Perú 2009, trató acerca de las nuevas características de la versión 3.0 que está por salir utilizando Spring 3.0 M3.

Los principales puntos fueron:

  • Uso de JDK 5.0
  • Configuración con anotaciones
  • Spring Test Context Framework
  • Spring Expression Language
  • Spring JavaConfig
  • Spring REST Support

Presentación en SlideShare
Repositorio Subversion de Spring Live Perú 2009

Ultima actualización Martes 26 de Mayo de 2009 11:38
 
Spring: Obteniendo beans desde un servlet
Escrito por Abner Ballardo   
Sábado 09 de Mayo de 2009 13:10

Una de las características más importantes de Spring Framework es la inyección de dependencias. Aplicando este patrón podemos lograr que las clases dependan de interfaces y no de alguna implementación específica, los beneficios de esta forma de trabajo son innumerables y pueden encontrar varios artículos que los describen a profundidad en internet y en la documentación de Spring.

Pero que sucede si nos encontramos con el siguiente problema:

Estamos usando Spring MVC en una aplicación web pero nos vemos obligados a implementar un Servlet. Dentro de este Servlet tenemos que invocar a un Service que ya esta siendo administrado por el contexto de Spring.

El consejo del bug killer puede llevarnos por dos caminos en este escenario:

  • No buscar en internet a profundidad, ni preguntar y usar la solución más rápida que se te venga a la mente.
  • Seguir el buen diseño y obtener una referencia al Service administrado por Spring.

En el primer caso tendríamos un Servlet implementado de la siguiente manera:

public class DummyServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public DummyServlet() {

super();

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

DummyService service = new DummyServiceImpl();

resp.getWriter().print(bean.getMessage());

}

}

¡Esta instanciando la implementación del Service directamente!,... esto puede traer serios problemas si se tiene que cambiar el DummyServiceImpl por otro en un futuro próximo o lejano. Lo más probable es que no se actualice el Servlet y se presente un comportamiento no esperado del sistema.

En el segundo caso, usaríamos las mismas clases de Spring para obtener una referencia al Service:

public class DummyServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public DummyServlet() {

super();

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

WebApplicationContext applicationContext = ContextLoader

.getCurrentWebApplicationContext();

DummyService service = (DummyService) applicationContext.getBean("DummyService");

resp.getWriter().print(bean.getMessage());

}

}

Manteniendo de esa manera el diseño y el patrón de inyección de dependiencias.

Happy Hacking!

UPDATE: Para simplificar el ejemplo de este articulo solo se instancia el Service en el Servlet pero debemos tener en cuenta que el Service puede depender de clases DAO o puede necesitar AOP. Esto agravaría más los problemas de instanciar una clase que ya esta siendo manejada por el contenedor IoC.

Abner Ballardo

 
<< Inicio < Anterior 1 2 3 4 5 6 Siguiente > Fin >>

Página 2 de 6