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