Atributy běžných typů

Při definici našich spravovaných tříd v aplikačním kontextu můžeme díky pokročilým konverzním schopnostem rámce Spring™ snadno nastavit hodnoty atributů všech primitivních typů, typů kolekce a často používaných tříd. Následuje komplexní příklad:

<bean id="objekt_s_mnoha_atributy" class="com.TridaSMnohaAtributy">
  <property name="booleanAttr" value="true" />
  <property name="intAttr" value="3" />
  <property name="doubleAttr" value="3.45" />
  <!-- atribut typu java.lang.Class -->
  <property name="classAttr" value="neco.NejakaTrida" />
  <!-- lze použít speciální element null pro vyjádření prázdného odkazu 
       v atributu objektového typu -->
  <property name="stringAttr"><value><null/></value></property>
  <!-- atribut typu String[] -->
  <property name="stringArrayAttr" value="retezec1,retezec2,retezec3">
  <property name="listAttr">
    <list>
      <value>neco</value>
      <value>cokoliv</value>
      <value>kdokoliv</value>
    </list>
  </property>
  <property name="setAttr">
    <set>
      <value>1</value>
      <value>2</value>
      <value>3</value>
    </set>
  </property>
  <property name="mapAttr">
    <map>
      <entry key="auto">
        <value>moto</value>
      </entry>
      <entry key="jedna">
        <value>dva</value>
      </entry>
      <entry key="cokoliv">
        <value>kdokoliv</value>
      </entry>
    </map>
  </property>
  <property name="propertiesAttr">
    <props>
      <prop key="auto">moto</prop>
      <prop key="jedna">dva</prop>
    </props>
  </property>
</bean>

Příklad je natolik sebedokumentující, že není nutno jej příliš vysvětlovat. Snad jen dodejme, že princip konverze textových hodnot z konfiguračního souboru na konkrétní datové typy spočívá v kombinaci použití klasické javové reflexe a konceptu tzv. editorů vlastností (property editors), který je součástí standardu JavaBeans™. Spring pomocí reflexe zjistí typ daného atributu, na základě tohoto typu zvolí z registru editorů vhodný editor a použije jej pro konverzi z řetězce na cílový typ.

Implicitně je pro všechny objekty aplikačního kontextu registrováno množství běžných existujících editorů pro primitivní typy z balíku sun.bean.editors a také editorů rámce Spring™ z balíku org.springframework.beans.propertyeditors. Nic ovšem nebrání vytvoření vlastního editoru pro konverzi řetězců na vlastní objektový typ (viz třídy v balíku cz.morosystems.sportportal.editors z přiložené vzorové aplikace) a registraci tohoto editoru v aplikačním kontextu rámce Spring™.

Lze přistupovat také k vnořeným vlastnostem JavaBeans™ a to následujícím způsobem:

<bean id="cokoliv" class="kdekoliv.Cokoliv">
  <property name="skupina.vedouci.vek" value="23"/>
</bean>

Je však nutné, aby vlastnost skupina objektu cokoliv neměla hodnotu null a aby obsahovala vlastnost vedouci, pro niž platí totéž. Vlastnost vek pak musí být skalárního typu.

Komentáře

Téma neobsahuje žádné komentáře.

Vložit komentář

Můžete používat značkovací jazyk Texy!


Jméno:
E-mail:
Url:
Komentář:
1 + 2 =
 
MoroSystems, s.r.o.