GitHub: https://github.com/SylkeWay/synthful
XSDs required by Spring context configuration for Spring util resources.
Employment of Spring util:* resources is demonstrated with the Spring MVC context configuration file /durian/src/main/resources/springweb/mvc-context.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd ">
An extra XSD schema is required by the context configuration files.
xmlns:util="http://www.springframework.org/schema/util"
And its schema-location mapping appended to the schemaLocation declaration:
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
util:constant
util:constant is for exposing a static object that has been defined in an existent object instance, as a Spring bean.
<util:constant id="season" static-field="com.synthful.angst.mvc.durian.DurianMVController.SEASON" /> <util:constant id="NULL" static-field="com.synthful.angst.model.Address.NULL" />
SEASON is already defined as a static field in DurianMVController class.
@Controller public class DurianMVController extends AAngsta{ final static public String SEASON = "Spring";
NULL is already defined as a static field in Address class.
public class Address extends AAngsta { final static public String NULL = null;
The bean exposed as util:constant can be injected. as is done in class DurianGroveMVController. util:map
util:map is a way to create a Map, as a bean that can be injected as a resource.
<util:map id="zipMap" key-type="java.lang.Integer" value-type="com.synthful.angst.model.Address"> <entry key="1001"> <bean class="com.synthful.angst.model.Address"> <constructor-arg index="0" ref="NULL"/> <constructor-arg index="1" value="Hampden"/> <constructor-arg index="2" type="int" value="1001"/> </bean> </entry> <entry key="1004"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="Amhearst"/> <constructor-arg name="zip" type="int" value="1004"/> </bean> </entry> <entry key="3910"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="York Beach"/> <constructor-arg name="zip" type="int" value="3910"/> </bean> </entry> <entry key="4444"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="Hampden"/> <constructor-arg name="zip" type="int" value="4444"/> </bean> </entry> <entry key="63440"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="La Grange"/> <constructor-arg name="zip" type="int" value="63440"/> </bean> </entry> <entry key="97101"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="Amity"/> <constructor-arg name="zip" type="int" value="97101"/> </bean> </entry> <entry key="98424"> <bean class="com.synthful.angst.model.Address"> <constructor-arg name="street" ref="NULL"/> <constructor-arg name="city" value="Tacoma"/> <constructor-arg name="zip" type="int" value="98424"/> </bean> </entry> </util:map>
The util:constant bean is injected with @Inject annotation
But the util:map bean is injected with @Resource annotation
@Controller @RequestMapping("/duriangrove") public class DurianGroveMVController extends AAngsta{ @Inject private String season; // Inject static field exposed by util:constant @Resource (name="zipMap") private MapzipMap;
No comments:
Post a Comment