Hlavní menu

Nástroje

UvodDoKomponent / Spring

View (print) - Edit page | Recent changes - Page history

Updated 22 December 2014, 14:55 by Eduard Chromik

UvodDoKomponent.Spring History

Hide minor edits - Show changes to markup

22 December 2014, 14:55 by Eduard Chromik -
Changed line 30 from:

=xml [=

to:
 [@
Changed lines 37-38 from:

=]

to:

@]

Changed line 41 from:

=java122 [=

to:

[@

Changed lines 43-44 from:

=]

to:

@]

Changed line 51 from:

=xml [=

to:
 [@
Changed lines 55-56 from:

=]

to:

@]

Changed line 63 from:

=java122 [=

to:
 [=
Changed line 81 from:

=xml [=

to:
 [=
Changed line 105 from:

=code [=

to:

[@

Changed lines 115-116 from:

=]

to:

@]

22 December 2014, 14:07 by Eduard Chromik -
Changed lines 64-74 from:

Container = new CompositionContainer?(

                new AggregateCatalog?(
                    new AssemblyCatalog?( Assembly.GetExecutingAssembly?() ) ,
                    new AssemblyCatalog?( Assembly.LoadFrom?( @"MEFVisualizer?.Exe" ) )
                    ) );

            Container.Compose( batch );

            var meftoDgml = new MEFToDGML?( Container){ IsNamespaceGrouping? = true };   // The Visualizer

           meftoDgml.WriteToDGMLFile?();   // Write to DGML file
to:

package x.y;

public class Foo {

    private Baz baz;

    public Foo(Bar bar) {
        // ...
    }

    public void setBaz(Baz baz) {
      this.baz=baz;
    }

}

22 December 2014, 14:06 by Eduard Chromik -
Changed lines 64-76 from:

package x.y;

public class Foo {

    private Baz baz;

    public Foo(Bar bar) {
        // ...
    }

    public void setBaz(Baz baz) {
      this.baz=baz;
    }

}

to:

Container = new CompositionContainer?(

                new AggregateCatalog?(
                    new AssemblyCatalog?( Assembly.GetExecutingAssembly?() ) ,
                    new AssemblyCatalog?( Assembly.LoadFrom?( @"MEFVisualizer?.Exe" ) )
                    ) );

            Container.Compose( batch );

            var meftoDgml = new MEFToDGML?( Container){ IsNamespaceGrouping? = true };   // The Visualizer

           meftoDgml.WriteToDGMLFile?();   // Write to DGML file
22 March 2011, 17:12 by Pavel Herout -
Changed lines 125-126 from:

Komponentou je pak ve Springu beana, která implementuje alespoň jedno rozhraní. Co komponenta poskytuje, pak mohou být tato implementovaná rozhraní, a co komponenta potřebuje mohou být atributy konstruktoru. Zde je velice důležité slovíčko mohou, protože stejně jako v OSGi i zde mohu získat komponenty z kontextu za běhu programu. Ovšem narozdíl od OSGi zde nemám žádné metainformace, které by mi řekly, co budu za běhu potřebovat.

to:

Komponentou je pak ve Springu beana, která implementuje alespoň jedno rozhraní. Co komponenta poskytuje, pak mohou být tato implementovaná rozhraní, a co komponenta potřebuje, mohou být atributy konstruktoru. Zde je velice důležité slovíčko mohou, protože stejně jako v OSGi i zde mohu získat komponenty z kontextu za běhu programu. Ovšem narozdíl od OSGi zde nemám žádné metainformace, které by mi řekly, co budu za běhu potřebovat.

22 March 2011, 17:11 by Pavel Herout -
Changed lines 103-104 from:

V následující části XML konfiguračního souboru si ukážeme vytvoření komponenty Foo a její následné získání další komponentou Fuu.

to:

V následující části XML konfiguračního souboru si ukážeme vytvoření komponenty x.y.Foo a její následné získání další komponentou x.z.Fuu.

Changed lines 119-120 from:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci Springu na několik odkazů na komponentu – notace @component ve zdrojovém kódu nad jménem třídy. Či v XML konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

to:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci Springu na několik odkazů na komponentu – notace @component ve zdrojovém kódu nad jménem třídy. Či v XML konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

Changed lines 123-126 from:

Řekli jsme si, že se u Springu pořádně nerozlišují pojmy model a framework. My však víme, že model je specifikace a popis. Framework je implementací dané specifikace.

Komponentou je pak ve Springu beana, která implementuje alespoň jedno rozhranní. Co komponenta poskytuje pak mohou být tyto implementované rozhranní a co komponenta potřebuje mohou být atributy konstruktoru. Zde je velice důležité slovíčko mohou, protože stejně jako v OSGi i zde mohu získat komponenty z kontextu za běhu programu. Ovšem narozdíl od OSGi zde nemám žádné metainformace, které by mi řekly, co budu za běhu potřebovat.

to:

Řekli jsme si, že se u Springu nerozlišují důsledně pojmy model a framework. My však víme, že model je specifikace a popis. Framework je implementací dané specifikace.

Komponentou je pak ve Springu beana, která implementuje alespoň jedno rozhraní. Co komponenta poskytuje, pak mohou být tato implementovaná rozhraní, a co komponenta potřebuje mohou být atributy konstruktoru. Zde je velice důležité slovíčko mohou, protože stejně jako v OSGi i zde mohu získat komponenty z kontextu za běhu programu. Ovšem narozdíl od OSGi zde nemám žádné metainformace, které by mi řekly, co budu za běhu potřebovat.

22 March 2011, 17:04 by Pavel Herout -
Changed lines 94-99 from:

Spring pak při vytváření volá kontruktor s parametry, které jsou v <construtor-arg> a následně zavolá metody setName(hodnota), které jsou v <property>, přičemž setter se musí jmenovat dle hodnoty name a jako hodnota se vkládá buď přímo pomocí atributu "value", nebo jako reference na objekt pomocí atributu "ref".

Komponenta a rozhranní komponenty

Ve Springu je komponenta abstraktní a pro začátečníka je hranice mezi objektem, beanou a komponentou prakticky nulová. Rozdíl je pouze v pohledu na věc (beanu) a její použití.

to:

Spring pak při vytváření volá konstruktor s parametry, které jsou v <construtor-arg>. Následně zavolá metody setName(hodnota), které jsou v <property>, přičemž setter se musí jmenovat dle hodnoty name a jako hodnota se vkládá buď přímo pomocí atributu value, nebo jako reference na objekt pomocí atributu ref.

Komponenta a rozhraní komponenty

Ve Springu je komponenta abstraktní a pro začátečníka je rozdíl mezi objektem, beanou a komponentou prakticky nulový. Odlišnost je pouze v pohledu na věc (beanu) a její použití.

Changed lines 102-105 from:

Mějme třídu x.y.Foo, která implementuje rozhranní x.y.IFoo?. Tato třída nechť je komponentou a implementovaný interface je interfacem této komponenty.
V následujícím XML konfiguračním útržku si ukážeme vytvoření takové komponenty a její následné získání další komponentou.

=xml [=

to:

Mějme třídu x.y.Foo, která implementuje rozhraní x.y.IFoo?. Tato třída nechť je komponentou a implementované rozhraní je rozhraním této komponenty.
V následující části XML konfiguračního souboru si ukážeme vytvoření komponenty Foo a její následné získání další komponentou Fuu.

=code [=

22 March 2011, 16:59 by Pavel Herout -
Changed line 53 from:
<bean id="foo" class="x.y.Foo"/>
to:
  <bean id="foo" class="x.y.Foo"/>
22 March 2011, 16:59 by Pavel Herout -
Changed line 53 from:
    <bean id="foo" class="x.y.Foo"/>
to:
<bean id="foo" class="x.y.Foo"/>
Changed lines 59-60 from:

Spring podporuje DI dvěma hlavními způsoby - DI konstruktoru a DI setteru.

to:

Spring podporuje DI dvěma hlavními způsoby – DI konstruktoru a DI setteru.

Changed lines 119-120 from:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci Springu na několik odkazů na komponentu - notace @component ve zdrojovém kódu nad jménem třídy. Či v XML konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

to:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci Springu na několik odkazů na komponentu – notace @component ve zdrojovém kódu nad jménem třídy. Či v XML konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

22 March 2011, 16:57 by Pavel Herout -
Changed lines 39-40 from:

Obsahem takového souboru jsou beany, které se vytvářejí při vytvoření kontextu. Kontext vytvoříme následovně:

to:

Obsahem takového souboru jsou beany, které vznikají při vytvoření kontextu. Kontext vytvoříme následovně:

Changed lines 45-46 from:

Pak už můžeme od contextu chtít beany, které potřebujeme.

to:

Pak už můžeme od kontextu požadovat potřebné beany.

Changed lines 49-50 from:

Bean je ve světě Springu to samé, co objekt. Beany jsou objekty v konfiguračním souboru Springu.

to:

Bean je ve světě Springu to samé, co objekt. Beany jsou objekty popsané v konfiguračním souboru Springu jako elementy.

22 March 2011, 16:53 by Pavel Herout -
Changed lines 7-9 from:

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o Springu, jako o frameworku, můžeme říct že "Spring model = Spring framework". Mějte však na paměti, že framework je implementace modelu.

to:

Pozor! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o Springu, jako o frameworku, můžeme říct že "Spring model = Spring framework". Mějte však na paměti, že framework je implementace modelu.

Changed lines 12-13 from:

Spring se skládá z tříd a metod, které jsou rozděleny do 20ti modulů. Tyto moduly se slučují na Core Container, Data Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation, a Test, jak je vidět na obrázku níže

to:

Spring se skládá z tříd a metod, které jsou rozděleny do 20ti modulů. Tyto moduly se slučují do částí Data Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation, Core Container a Test, jak je vidět na obrázku níže

Changed line 20 from:
  • AOP and Instrumentation: podpora aspektově orientovaného programování, včetně implementace Alliance-compliant aspect-oriented programming.
to:
  • AOP a Instrumentation: podpora aspektově orientovaného programování, včetně implementace Alliance-compliant aspect-oriented programming.
Changed lines 23-24 from:

Pro více informací k jednotlivým modulům se můžete podívat na dokumentaci springu.

to:

Pro více informací k jednotlivým modulům se můžete podívat na dokumentaci Springu.

Changed line 27 from:

Základem je konfigurační Springový soubor. Jde o klasický XML soubor, který však používá namespacy Springu.

to:

Základem je konfigurační Springový soubor. Jde o klasický XML soubor, který však používá jmenný prostor Springu.

Changed lines 31-35 from:
  <?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.0.xsd" />

  </beans>
to:

<?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.0.xsd" />

</beans>

22 March 2011, 16:49 by Pavel Herout -
Changed lines 7-9 from:

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o springu, jako o frameworku, můžeme říct že "Spring model = Spring framework". Mějte však na paměti, že framework je implementace modelu.

to:

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o Springu, jako o frameworku, můžeme říct že "Spring model = Spring framework". Mějte však na paměti, že framework je implementace modelu.

Changed line 18 from:
  • Data Access/Integration: moduly poskytující přístup k datům z db, xml a dalších.
to:
  • Data Access/Integration: moduly poskytující přístup k datům z DB, XML a dalších.
Changed line 27 from:

Základem je konfigurační springový soubor. Jde o klasický xml soubor, který však používá namespacy Springu.

to:

Základem je konfigurační Springový soubor. Jde o klasický XML soubor, který však používá namespacy Springu.

Changed lines 78-79 from:

DI pak nastavíme ve Springovém xml konfiguračním souboru:

to:

DI pak nastavíme ve Springovém XML konfiguračním souboru:

Changed lines 102-103 from:

V následujícím xml konfiguračním útržku si ukážeme vytvoření takové komponenty a její následné získání další komponentou.

to:

V následujícím XML konfiguračním útržku si ukážeme vytvoření takové komponenty a její následné získání další komponentou.

Changed lines 118-119 from:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci springu na několik odkazů na komponentu - notace @component ve zdrojovém kódu nad jménem třídy. Či v xml konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

to:

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci Springu na několik odkazů na komponentu - notace @component ve zdrojovém kódu nad jménem třídy. Či v XML konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

Changed lines 133-134 from:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloWorldSpring

to:

HelloWorldSpring využívající Springového kontextu. Výsledná implementace: Attach:HelloWorldSpring

22 March 2011, 16:04 by Pavel Herout -
Changed lines 3-4 from:

Spring

to:

Spring

Changed lines 10-11 from:

Spring Framework

to:

Spring Framework

22 March 2011, 16:02 by Pavel Herout -
Added lines 1-2:
Changed lines 9-11 from:
to:
22 March 2011, 16:02 by Pavel Herout -
22 March 2011, 16:02 by Pavel Herout -
Deleted lines 0-1:
Added lines 7-9:
13 January 2010, 14:34 by Snajberk -
Added lines 94-118:

Komponenta a rozhranní komponenty

Ve Springu je komponenta abstraktní a pro začátečníka je hranice mezi objektem, beanou a komponentou prakticky nulová. Rozdíl je pouze v pohledu na věc (beanu) a její použití.

Ukažme si tedy jak vypadá komponenta ve Springu:

Mějme třídu x.y.Foo, která implementuje rozhranní x.y.IFoo?. Tato třída nechť je komponentou a implementovaný interface je interfacem této komponenty.
V následujícím xml konfiguračním útržku si ukážeme vytvoření takové komponenty a její následné získání další komponentou.

<beans>
<bean id="foo" class="x.y.Foo"/>

<bean id="fuu" class="x.z.Fuu">
<constructor-arg type="x.y.IFoo">
<ref bean="foo"/>
</constructor-arg>
</bean>
</beans>

Jak je vidět v ukázce výše, tak jsme komponentu injektovali do konstruktoru. Samozřejmě ji můžeme i získat z kontextu někde v těle komponenty x.z.Fuu.

Poznámka: Při psaní tohoto úvodu jsem narazil v dokumentaci springu na několik odkazů na komponentu - notace @component ve zdrojovém kódu nad jménem třídy. Či v xml konfiguračním souboru jako <component>. Nepodařilo se mi však najít žádné uchopitelné informace, které by mi pomohly zjistit k čemu tyto notace slouží.

Added lines 123-124:

Komponentou je pak ve Springu beana, která implementuje alespoň jedno rozhranní. Co komponenta poskytuje pak mohou být tyto implementované rozhranní a co komponenta potřebuje mohou být atributy konstruktoru. Zde je velice důležité slovíčko mohou, protože stejně jako v OSGi i zde mohu získat komponenty z kontextu za běhu programu. Ovšem narozdíl od OSGi zde nemám žádné metainformace, které by mi řekly, co budu za běhu potřebovat.

05 January 2010, 16:09 by Snajberk -
Deleted lines 97-98:

Pojem

05 January 2010, 15:26 by Snajberk -
Added lines 94-99:

Shrnutí

Řekli jsme si, že se u Springu pořádně nerozlišují pojmy model a framework. My však víme, že model je specifikace a popis. Framework je implementací dané specifikace.

Pojem

05 January 2010, 14:07 by Snajberk -
Changed lines 37-38 from:

Obsahem takového souboru jsou beany, které se vytvářejí při spuštění aplikace.

to:

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Obsahem takového souboru jsou beany, které se vytvářejí při vytvoření kontextu. Kontext vytvoříme následovně:

ApplicationContext ctx = new ClassPathXmlApplicationContext("cz/zcu/kiv/project/beanDefinition.xml");

Pak už můžeme od contextu chtít beany, které potřebujeme.

05 January 2010, 13:59 by Snajberk -
Added lines 24-48:

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Základ Springu

Základem je konfigurační springový soubor. Jde o klasický xml soubor, který však používá namespacy Springu. Hlavička takového XML vypadá následovně:

<?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.0.xsd" />

</beans>

Obsahem takového souboru jsou beany, které se vytvářejí při spuštění aplikace.

Beans

Bean je ve světě Springu to samé, co objekt. Beany jsou objekty v konfiguračním souboru Springu.

<beans>
<bean id="foo" class="x.y.Foo"/>
</beans>
05 January 2010, 13:37 by Snajberk -
Deleted lines 6-7:

Spring je J2EE? lightweight kontejner. Jeho hlavním účelem je ulehčení vývoje enterprise aplikací.

05 January 2010, 13:33 by Snajberk -
Changed lines 7-8 from:

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o springu, jako o frameworku, budu v této části definovat "Spring model = Spring framework". Mějte však na paměti, že framework je samotná implementace modelu.

to:

Spring je J2EE? lightweight kontejner. Jeho hlavním účelem je ulehčení vývoje enterprise aplikací.

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o springu, jako o frameworku, můžeme říct že "Spring model = Spring framework". Mějte však na paměti, že framework je implementace modelu.

22 December 2009, 16:03 by Snajberk -
Changed lines 26-27 from:

One of most important feature of Spring core container is IoC container.

to:

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564

Spring podporuje DI dvěma hlavními způsoby - DI konstruktoru a DI setteru.

Mějme třídu:

package x.y;

public class Foo {
        private Baz baz;

        public Foo(Bar bar) {
                // ...
        }

        public void setBaz(Baz baz) {
                this.baz=baz;
        }
}

DI pak nastavíme ve Springovém xml konfiguračním souboru:

<beans>
<bean id="foo" class="x.y.Foo">
<constructor-arg ref="bar"/>
<property name="baz" ref="baz"/>
</bean>

<bean id="bar" class="x.y.Bar"/>
<bean id="baz" class="x.y.Baz"/>

</beans>

Spring pak při vytváření volá kontruktor s parametry, které jsou v <construtor-arg> a následně zavolá metody setName(hodnota), které jsou v <property>, přičemž setter se musí jmenovat dle hodnoty name a jako hodnota se vkládá buď přímo pomocí atributu "value", nebo jako reference na objekt pomocí atributu "ref".

22 December 2009, 14:34 by Snajberk -
Changed lines 24-27 from:

Spring framework functionality can be used in any J2EE? server and most of it also is adaptable to non-managed environments. A central focus of Spring is to allow for reusable business and data-access objects that are not tied to specific J2EE? services. Such objects can be reused across J2EE? environments (Web or EJB), standalone applications, test environments, and so on, without any hassle.

Spring (IoC) Beans

to:

Dependency Injection a Inversion of Control

22 December 2009, 14:28 by Snajberk -
Changed lines 16-17 from:
  • Core Container: obsahuje základy frameworku
to:
  • Core Container: jádro frameworku, které pak používají ostatní moduly. Obsahuje IoC a Dependency Injection, Application context a další.
  • Data Access/Integration: moduly poskytující přístup k datům z db, xml a dalších.
  • Web: moduly poskytující dodatečné služby při vývoji webových aplikací.
  • AOP and Instrumentation: podpora aspektově orientovaného programování, včetně implementace Alliance-compliant aspect-oriented programming.
  • Test: podpora JUnit? testů.
22 December 2009, 14:21 by Snajberk -
Added lines 15-17:

Stručně o jednotlivých modulech:

  • Core Container: obsahuje základy frameworku
22 December 2009, 14:16 by Snajberk -
Added lines 5-8:

První verze Springu je od Roda Johnsona a vyšla zároveň s knihou Expert One-on-One J2EE Design and Development, která popisuje základní filosofii Springu.

POZOR! Spring má jedinou implementaci a tak se obecně moc nerozlišují pojmy model a framework. Protože se všude mluví o springu, jako o frameworku, budu v této části definovat "Spring model = Spring framework". Mějte však na paměti, že framework je samotná implementace modelu.

Changed lines 11-12 from:

Spring is an open source framework created to adress the complexity of enterprise application development. One of the main advantages of the Spring framework is its layered architecture, which allows you to be selective about which of its parts you use. The Spring framework consists of seven well-defined modules. The Spring modules are built on top of the core container, which defines how beans are created, configured, and managed, as shown in Figure 1.

to:

Spring se skládá z tříd a metod, které jsou rozděleny do 20ti modulů. Tyto moduly se slučují na Core Container, Data Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation, a Test, jak je vidět na obrázku níže

Changed lines 15-24 from:

Each of the modules that comprise the Spring framework can stand on its own or be implemented jointly with one or more of the others. The functionality of each component is as follows:

  • The core container: The core container provides the essential functionality of the Spring framework. A primary component of the core container is the BeanFactory?, an implementation of the Factory pattern. The BeanFactory? applies the Inversion of Control (IOC) pattern to separate an application's configuration and dependency specification from the actual application code.
  • Spring context: The Spring context is a configuration file that provides context information to the Spring framework. The Spring context includes enterprise services such as JNDI, EJB, e-mail, internalization, validation, and scheduling functionality.
  • Spring AOP: The Spring AOP module integrates aspect-oriented programming functionality directly into the Spring framework, through its configuration management feature.
  • Spring DAO: The Spring JDBC DAO abstraction layer offers a meaningful exception hierarchy for managing the exception handling and error messages thrown by different database vendors.
  • Spring ORM: The Spring framework plugs into several ORM frameworks to provide its Object Relational tool, including JDO, Hibernate, and iBatis SQL Maps. All of these comply to Spring's generic transaction and DAO exception hierarchies.
  • Spring Web module: The Web context module builds on top of the application context module, providing contexts for Web-based applications. As a result, the Spring framework supports integration with Jakarta Struts. The Web module also eases the tasks of handling multi-part requests and binding request parameters to domain objects.
  • Spring MVC framework: The Model-View-Controller (MVC) framework is a full-featured MVC implementation for building Web applications.
to:

Pro více informací k jednotlivým modulům se můžete podívat na dokumentaci springu.

22 December 2009, 13:58 by Snajberk -
Changed lines 9-10 from:

spring-overview.png

to:
22 December 2009, 13:58 by Snajberk -
Changed lines 9-10 from:

http://www.bauml.cz/content/spring_framework.gif

to:

spring-overview.png

22 December 2009, 13:39 by Snajberk -
Added lines 3-4:

Spring

22 December 2009, 13:33 by Snajberk -
Changed lines 25-26 from:

Spring framework

to:

Praktická část

17 December 2009, 16:15 by Snajberk -
Added lines 3-24:

Spring Framework

Spring is an open source framework created to adress the complexity of enterprise application development. One of the main advantages of the Spring framework is its layered architecture, which allows you to be selective about which of its parts you use. The Spring framework consists of seven well-defined modules. The Spring modules are built on top of the core container, which defines how beans are created, configured, and managed, as shown in Figure 1.

http://www.bauml.cz/content/spring_framework.gif

Each of the modules that comprise the Spring framework can stand on its own or be implemented jointly with one or more of the others. The functionality of each component is as follows:

  • The core container: The core container provides the essential functionality of the Spring framework. A primary component of the core container is the BeanFactory?, an implementation of the Factory pattern. The BeanFactory? applies the Inversion of Control (IOC) pattern to separate an application's configuration and dependency specification from the actual application code.
  • Spring context: The Spring context is a configuration file that provides context information to the Spring framework. The Spring context includes enterprise services such as JNDI, EJB, e-mail, internalization, validation, and scheduling functionality.
  • Spring AOP: The Spring AOP module integrates aspect-oriented programming functionality directly into the Spring framework, through its configuration management feature.
  • Spring DAO: The Spring JDBC DAO abstraction layer offers a meaningful exception hierarchy for managing the exception handling and error messages thrown by different database vendors.
  • Spring ORM: The Spring framework plugs into several ORM frameworks to provide its Object Relational tool, including JDO, Hibernate, and iBatis SQL Maps. All of these comply to Spring's generic transaction and DAO exception hierarchies.
  • Spring Web module: The Web context module builds on top of the application context module, providing contexts for Web-based applications. As a result, the Spring framework supports integration with Jakarta Struts. The Web module also eases the tasks of handling multi-part requests and binding request parameters to domain objects.
  • Spring MVC framework: The Model-View-Controller (MVC) framework is a full-featured MVC implementation for building Web applications.

Spring framework functionality can be used in any J2EE? server and most of it also is adaptable to non-managed environments. A central focus of Spring is to allow for reusable business and data-access objects that are not tied to specific J2EE? services. Such objects can be reused across J2EE? environments (Web or EJB), standalone applications, test environments, and so on, without any hassle.

Spring (IoC) Beans

One of most important feature of Spring core container is IoC container.

17 December 2009, 16:03 by Snajberk -
Added lines 1-2:
16 December 2009, 10:43 by Snajberk -
Changed lines 8-9 from:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloSpring Δ

to:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloWorldSpring

16 December 2009, 10:42 by Snajberk -
Changed lines 8-12 from:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloSpring.zip Δ

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterSpring.zip

Příklad ParkovisteSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:ParkovisteSpring.zip

to:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloSpring Δ

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterSpring

Příklad ParkovisteSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:ParkovisteSpring

16 December 2009, 10:42 by Snajberk -
Changed lines 8-9 from:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Soubor:HelloSpring.zip?

to:

HelloWorldSpring využívající springového contextu. Výsledná implementace: Attach:HelloSpring.zip Δ

Changed line 12 from:

Příklad ParkovisteSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:ParkovisteSpring.zip?

to:

Příklad ParkovisteSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:ParkovisteSpring.zip

16 December 2009, 10:36 by Snajberk -
Changed lines 10-11 from:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterSpring.zip

to:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterSpring.zip

16 December 2009, 10:36 by Snajberk -
Changed lines 10-11 from:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: MessagePrinterSpring.zip?

to:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterSpring.zip

16 December 2009, 10:35 by Snajberk -
Changed lines 10-11 from:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:MessagePrinterSpring.zip?

to:

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: MessagePrinterSpring.zip?

16 December 2009, 10:33 by Snajberk -
Added lines 1-12:

Spring framework

V těchto návodech pracuji s SpringSource Tool Suite, které je trochu odlišné od Eclipsu. Většina věcí je však stejná.

TutoriálSpring pro vytvoření nového projektu pro práci se Springem.

HelloWorldSpring využívající springového contextu. Výsledná implementace: Soubor:HelloSpring.zip?

Příklad MessagePrinterSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:MessagePrinterSpring.zip?

Příklad ParkovisteSpring pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:ParkovisteSpring.zip?