Spring-Glossar
Unser Spring-Glossar erklärt die vielen Fachbegriffe wie beispielsweise Inversion of Control, Dependency Injection etc., die durch alle möglichen eZines und Printmedien geistern.
Wenn Sie Begriffe vermissen, die Ihrer Meinung nach erklärt gehören oder falls Sie Fragen haben, mailen Sie uns doch einfach unter
Index
A·B·C·D·E·F·G·H·I·J·K·L·M·N·O·P·Q·R·S·T·U·V·W·X·Y·Z·Alle
| A nach oben | ||
| ApplicationContext | Das ApplikationsContext Interface erweitert das BeanFactory Interface mit zusätzlicher Funktionalität, die vor allem bei Enterprise Applikationen häufig benötigt wird.
Der ApplicationContext ist eine Obermenge der BeanFactory. Während eine BeanFactory Spring Beans instanziiert und konfiguriert, bietet der ApplicationContext zusätzlich die Unterstützung von Spring AOP, Message Resource Handling (Internationalisierung) und Event-Verarbeitung an. Ferner lassen sich über den ApplicationContext relativ einfach applikationsschichtspezifische Kontexte integrieren. Daher ist es empfehlenswert, den ApplikationsContext der BeanFactory vorzuziehen. | |
| B nach oben | ||
| BeanFactory |
Die BeanFactory ist der IoC (Inversion of Control) Container im Spring Framework.
Sie verwaltet die Komponenten (Spring Beans) sowie deren Abhängigkeiten und fungiert als Schnittstelle zwischen einer Applikation und dem Spring IoC Container.
public class XmlBeanFactoryExample {
public static main(String[] args) {
XmlBeanFactory beanFactory =
new XmlBeanFactory(
new ClassPathResource("beanDefinitions.xml"));
BundesligaManager blManager = (BundesligaManager)
beanFactory.getBean("bundesligaManager");
List<Team> teams = blManager.listTeams();
}
}
| |
| C nach oben | ||
| Controller | Der Begriff Controller steht für das ‘C’ im Spring MVC Framework. Eine Controller-Komponente fungiert als eine Art Vermittlungszentrale. Sie analysiert Requests, ruft Geschäftsmethoden aus der Service-Schicht der Applikation auf und legt die Ergebnisse in einem Model ab. Im Anschluss übergibt der Controller dieses Model an einen View, der das Ergebnis zur Anzeige bringt. | |
| D nach oben | ||
| Dependency Injection | Unter Dependency Injection versteht man das Anlegen eines Objektgrafen zur Laufzeit durch den Spring Container. In einer Konfigurationsdatei werden Klassen sowie deren Beziehungen und Abhängigkeiten untereinander definiert.
Somit übernimmt das Framework die Aufgabe des Erzeugens von Objekten und deren Abhängigkeiten. Dies hat folgende Vorteile:
| |
| DispatcherServlet | Das DispatcherServlet spielt in Spring MVC, Springs Implementation der MVC Architektur, eine zentrale Rolle. Es übernimmt die Funktion eines FrontControllers.
Es dient als zentrale Anlaufstelle für einkommende Requests und delegiert diese an eine Klasse, die das Controller Interface implementiert. Über ein sogenanntes HandlerMapping wird definiert, welche Controller-Klasse für einen spezifischen Request zuständig ist. Der Rückgabewert einer Spring Controller-Methode ist ein Objekt der ModelAndView Klasse. Dieses Objekt referenziert ein View- und ein Modelobjekt. Ein Modelobjekt implementiert das Map Interface. Das Viewobjekt implementiert das View Interface, welches eine render-Methode besitzt, die den darzustellenden Inhalt generiert. | |
| E nach oben |
| F nach oben |
| G nach oben |
| H nach oben | ||
| Handler Mappings | Ein HandlerMapping definiert, welcher Controller für einen bestimmten Request aufgerufen wird.
In Spring wird mit Hilfe von HandlerMappings die URL eines Requests auf eine Ausführungskette für die Requestabarbeitung gemappt. Die Ausführungskette besteht aus einer Liste von Pre- und Postprozessoren sowie Controller-Objekte. Spring bietet drei verschiedene Implementierungen des HandlerMapping Interface an: BeanNameUrlHandlerMapping: SimpleUrlHandlermapping: ControllerClassNameHandlerMapping: | |
| HandlerInterceptor | Zusätzlich zu einem RequestHandler (Controller) können in Spring HandlerInterceptor-Klassen definiert werden. Methoden dieser Klassen werden vom Framework vor bzw. nach dem Aufruf einer Controller-Methode ausgeführt.
In jeder HandlerMapping-Definition können ein oder mehrere HandlerInterceptor-Klassen definiert werden. Mit Hilfe von HandlerInterceptor-Klassen sollte Funktionalität implementiert werden, die für alle URLs eines HandlerMappings aufgerufen werden soll. Dies vermeidet redundanten Code in den Controller-Klassen. | |
| I nach oben | ||
| Inversion of Control | Inversion of Control (IoC) ist eine allgemeine Eigenschaft von Frameworks, wird gemeinhin gerne mit dem Satz “don’t call us, we’ll call you” umschrieben und soll ausdrücken, dass die Verantwortlichkeiten bei der Programmausführung beim Framework liegen und nicht bei den Komponenten, die auf Basis eines Frameworks entwickelt und ausgeführt werden.
Dies bedeutet, dass das Framework von seinen Komponenten verlangt, dass bestimmte Callback-Methoden durch sie implementiert werden, über die das Framework bzw. der Container zur Laufzeit Informationen in die Komponenten injiziert ober bestimmtes Verhalten (über Methodenaufrufe) auslöst. Bei Spring kommt eine spezialisierte Form von IoC zum Einsatz, auch wenn es im Detail sehr wohl Unterschiede gibt (siehe hierzu auch Dependency Injection). Im Kontext von Spring wird IoC und Dependency Injection vielfach synonym verwendet. | |
| J nach oben |
| K nach oben |
| L nach oben |
| M nach oben | ||
| MVC | MVC steht für das Model-View-Controller Architektur-Pattern. Das Entwurfsmuster unterteilt ein Software-System in drei verschiedene Bereiche.
Spring implementiert mit dem Spring MVC Framework das MVC Pattern. | |
| N nach oben |
| O nach oben |
| P nach oben |
| Q nach oben |
| R nach oben |
| S nach oben | ||
| Spring MVC | Spring MVC ermöglicht das Erstellen von Applikationen nach dem MVC (Model-View-Controller) Pattern. Es eignet sich insbesondere zur Erstellung web-basierter Anwendungen.
Das Model repräsentiert die Daten, die einem Benutzer angezeigt werden sollen. Hierbei handelt es sich in den meisten Fällen um JavaBeans, die in einer Map abgelegt sind. Die View hat die Aufgabe, die Daten aus dem Model zu rendern (anzuzeigen). Bei einer Web-Applikation wird hierbei in der Regel HTML-Output generiert, der vom Browser interpretiert und angezeigt wird. In Spring MVC ist eine View eine Klasse, die das Interface View implementiert. Der Controller ist für die Abarbeitung eines Requests verantwortlich. Er sorgt dafür, dass das Model erzeugt wird und übergibt dieses im Anschluss and die View für die Anzeige. Ein Spring MVC Controller implementiert das Interface Controller. Eine zentrale Komponente der MVC Implementierung von Spring ist das DispatcherServlet. | |
| Spring Beans | Der Spring IoC-Container verwaltet sogenannte Spring Beans.
Spring Beans sind Geschäftsobjekte/Komponenten, die für eine Applikation benötigt werden. Hierbei handelt es u.a. um:
Anmerkung: Domain-Objekte sollten nicht als Spring Beans definiert werden. Sie werden über DAOs und Geschäftslogik angelegt und benutzt. Dem Spring IoC-Container wird durch Konfigurations-Metadaten mitgeteilt, wie diese Beans zu instanziieren und zu verknüpfen sind. Die Konfiguration erfolgt in einer XML- oder Property-Datei. Aus Gründen der Lesbarkeit empfiehlt sich die Verwendung von XML. Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="...">
<bean id=" class="...">
<!— Bean Konfiguration -->
</bean>
<bean id="..." class="...">
<!— Bean Konfiguration -->
</bean>
<!-- weitere Bean Konfigurationen -->
</beans>
Eine Bean-Definition definiert u.a. folgende Metadaten:
Die komplette Liste der Metadaten ist in der Spring Dokumentation beschrieben. | |
| Scope | Der Scope einer Spring Bean definiert die Lebensdauer und Anzahl der Instanzen, die vom Spring IoC-Container erzeugt werden. Zusammen mit der BeanDefinition wird der Scope deklarativ festgelegt.
Durch den BeanScope kann beispielsweise festgelegt werden, ob der Spring IoC-Container immer die gleiche Instanz einer SpringBean liefert oder jedemal ein neues SpringBean-Objekt erzeugt, wenn die Applikation über den Container auf eine SpringBean zugreift. Neben der Erzeugung und dem Abräumen von Beans wird somit auch der Gültigkeitsbereich der Objekte deklarativ gesteuert und muss nicht programmiert werden. Spring kennt folgende Scopes:
| |
| T nach oben |
| U nach oben |
| V nach oben | ||
| View | Im Spring MVC-Framework ist eine View-Klasse für die Darstellung (das Rendern) des Models verantwortlich. Eine View-Klasse muss die render-Methode implementieren, die durch das View Interface vorgegeben wird. | |
| ViewResolver | Ein ViewResolver mappt einen View-Namen auf eine View-Klasse, die für die Anzeige verantwortlich ist. In manchen Fällen wird neben einer View-Klasse noch eine View-Datei angegeben, welche die View-Definition beinhaltet (z.B. bei der Verwendung einer JSP als View). Der ViewResolver entkoppelt die View von Controller und Model.
Das Spring Framework enthält folgende Implementierungen des ViewResolver-Interface: BeanNameViewResolver ResourceBundleViewResolver URLBasedViewResolver XmlViewResolver | |
| W nach oben |
| X nach oben |
| Y nach oben |
| Z nach oben |
Copyright © 2008–2009 Holisticon AG
Dieses Glossar darf in vollständiger Form und unverändert jederzeit kopiert und kostenlos weitergegeben werden. Der Hinweis auf die Originalquelle http://www.holisticon.de/cms/SpringGlossar/Startseite muss ebenso wie dieser Copyright-Hinweis stets angegeben werden. Es ist nicht zulässig, das Glossar kommerziell zu vertreiben, gegen Entgelt weiterzugeben oder Inhalte zu verändern. Im Rahmen nicht-kommerzieller Verwendungen, beispielsweise Diplomarbeiten, darf das Glossar gerne übernommen werden. Die Verwendung in kommerziellen Zusammenhängen, beispielsweise in öffentlichen oder internen Schulungen, firmeninternen Netzwerken, Publikationen, Produkten etc. ist prinzipiell gestattet, wenn eine entsprechende Meldung an gesendet wird. Die Weitergabe ist sowohl in elektronischer als auch gedruckter Form zulässig. Im Internet zugängliche Kopien sind ebenfalls zu melden.
Hinweis zu den Urhebern der dargestellten Abbildungen: Alle hier wiedergegebenen Grafiken wurden von uns erstellt und sind NICHT von Dritten bezogen!
Nehmen Sie Kontakt mit uns auf!
Ihre Ansprechpartner:
| Jochen Jörg | Roman Schlömmer |
| Telefon: +49 40 5074 2722 |