Zjednodušená definice parametrů bean ve Spring 2.0

13. February 2007

Spring Framework od svého vzniku v roce 2003 urazil velký kus cesty. Dnes je tu verze 2.0, která přináší oproti jedničkové řadě řadu zlepšení. Pokud chcete více informací přečtěte si dokument Whats new in Spring 2.0 (pdf, 669 KB).

Mezi novinky patří i možnost nového způsobu definice bean v aplikačním kontextu. Povolenými elementy už nejsou pouze kořenový element <beans> a mateřské <bean>. V dnešním článku chci ukázat pouze jednu maličkost – vzpomínanou zjednodušenou definici parametrů bean. Ukažme si to na jednoduchém příkladu.

Definice POJOs

Potřebujeme dva „Hello World“ objekty. Nechť jsou to například cz.vavru.sprin­g.samples.Car a cz.vavru.sprin­g.samples.Motor.

package cz.vavru.spring.samples;

public class Car {
        private int year;
        private String Mark;
        private Motor motor;

        public Motor getMotor() {
                return motor;
        }

        public void setMotor(Motor motor) {
                this.motor = motor;
        }

        public String getMark() {
                return Mark;
        }

        public void setMark(String mark) {
                Mark = mark;
        }

        public int getYear() {
                return year;
        }

        public void setYear(int year) {
                this.year = year;
        }

}
package cz.vavru.spring.samples;
public class Motor {
        private float power;
        private int cubature;

        public int getCubature() {
                return cubature;
        }

        public void setCubature(int cubature) {
                this.cubature = cubature;
        }

        public float getPower() {
                return power;
        }

        public void setPower(float power) {
                this.power = power;
        }

}

Definice bean pomocí Spring 1.2

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
     <bean id="motor-skoda" class="cz.vavru.spring.samples.Motor">
          <property name="power"><value>55</value></property>
          <property name="cubature"><value>1398</value></property>
     </bean>

     <bean id="car" class="cz.vavru.spring.samples.Car">
          <property name="year"><value>2004</value></property>
          <property name="mark"><value>Škoda Fabia</value></property>
          <property name="motor"><ref local="motor-skoda" /></property>
     </bean>
</beans>

Definice bean pomocí Spring 2.0

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      <bean id="motor-skoda" class="cz.vavru.spring.samples.Motor"
           p:power="55"
           p:cubature="1398"
      />
      <bean id="car" class="cz.vavru.spring.samples.Car"
           p:year="2004"
           p:mark="Škoda Fabia"
           p:motor-ref="motor-skoda"
      />
</beans>

Vtip spočívá právě v použití namespacu p, který validator (XSD) nevaliduje.

Odkazy

Článek patří do kategorie: Java, Spring Framework

1 Komentář Přidat komentář

  • 1. kolisko  |  12. April 2007 v 23.55

    Dobry den,

    Jaka je podpora namespace p v Eclipse / Spring IDE?

    pokud pouziju starsi zapis

    IDE hlida, jestli ma objekt metodu setYear. Plati tohle i v pripade pouziti p:year=„2004“ ?

Přidat komentář

Povinné

Povinné, skryté

Security Image Povinné
Opište text z obrázku

Povolené HTML značky:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Odkazovat na tento článek  |  Přihlásit se k odběru těchto komentářů přes RSS Feed


Kalendář

April 2024
M T W T F S S
« Jan    
1234567
891011121314
15161718192021
22232425262728
2930  

Poslední články

Locations of visitors to this page