En esta 3er entrega de Spring MVC vamos a mostrar un ejemplo muy muy simple de la IoC.
Para poder leer este tutorial es necesario haber leído anteriormente la 2da parte de este tutorial http://java-all-frameworks.blogspot.com/2011/08/spring-mvc-ii-form-processing.html
SpringHelloWorld-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="brandManager" class="springmvc.manager.BrandManager"/>
<bean id="carManager" class="springmvc.manager.CarManager"/>
<bean name="/hello_world.html" class="springmvc.web.HelloWorldController"/>
<bean name="/car_list.html" class="springmvc.web.CarListController">
<!-- IoC CarManager -->
<property name="cm" ref="carManager"/>
</bean>
<bean name="/new_car.html" class="springmvc.web.CarNewController">
<property name="commandClass" value="springmvc.model.Car" />
<property name="formView" value="car_new" />
<property name="successView" value="car_list.html"/>
<property name="validator">
<bean class="springmvc.validator.CarValidator"/>
</property>
<!-- IoC BrandManager -->
<property name="bm" ref="brandManager"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.
InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.
servlet.view.JstlView" />
<property name="prefix" value="/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
En rojo vemos como se modifica el xml y se agrega la inyeccion de dependencias. Es decir, a cada controller vamos a inyectarle cada manager para poder utilizarlos sin la necesidad de hacer new xxx().
CarListController.java
public class CarListController implements Controller {
	// IoC 
	private CarManager cm;
        ...
        ...
        ...
        public CarManager getCm() {
		return cm;
	}
	public void setCm(CarManager cm) {
		this.cm = cm;
	}
}
public class CarNewController  extends SimpleFormController{
	List<Brand> brandList = new ArrayList<Brand>();
	List<Car> carList = new ArrayList<Car>();
	// IoC 
	private BrandManager bm;
        ...
        ...
        ...
        public BrandManager getBm() {
		return bm;
	}
	public void setBm(BrandManager bm) {
		this.bm = bm;
	}	
}
Por favor, haga clic aqui para empezar la descarga
 
No hay comentarios:
Publicar un comentario