Blog

JMatter Framework

Sunil Prakash Inteti

Aktualisiert November 11, 2025
6 Minuten

Ziel dieses Blogs ist es, den Lesern das JMatter-Framework und seine Funktionen und Möglichkeiten vorzustellen. JMatter ist ein Software-Anwendungs-Framework. Es wurde speziell für die Entwicklung von Geschäftssoftwareanwendungen für Arbeitsgruppen entwickelt. Mit JMatter kann eine Vielzahl von Anwendungen entwickelt werden, z.B. Buchhaltungssoftware, Software für Anwaltskanzleien usw. Der Hauptvorteil von JMatter-Anwendungen ist die massive Verkürzung der Entwicklungszeit. Die Entwicklungszeit ist im Vergleich zu herkömmlichen Methoden der Softwareentwicklung unglaublich gering. Lassen Sie uns sehen, wie das möglich ist.

Die meisten Anwendungen haben eine Menge gemeinsamer Funktionen wie Anmeldedialoge, Authentifizierung usw. Die Entwickler verbringen die meiste Zeit mit der Entwicklung dieser gemeinsamen Funktionen. Technisch gesehen kann man diese als orthogonale Dienste bezeichnen, die für verschiedene Anwendungen allgemein gültig sind. Einige dieser orthogonalen Funktionen sind Benutzeroberfläche, Abfragedienste wie z.B. die Anzeige aller Personen, die in einer Stadt leben, Validierung, Persistenz, Kalender, Protokollierung, Autorisierung, Reporting - die Möglichkeit, aus den von einer Anwendung verwalteten Informationen druckbare (PDF-)Berichte zu erstellen. JMatter enthält die meisten dieser orthogonalen Dienste, so dass die Entwickler nicht bei Null anfangen müssen. Das wiederum hilft, die Entwicklungszeit zu verkürzen.Schauen wir uns die Architektur des JMatter-Frameworks an.....JMatter und seine Anwendungen sind in Java geschrieben. Wie wir wissen, ist Model-View-Controller die am weitesten verbreitete Architektur. JMatter bietet eine generische View-Controller-Implementierung und überlässt den Entwicklern die Arbeit am Modell. In JMatter-Anwendungen werden alle Daten in einer relationalen Backend-Datenbank gespeichert. Das JMatter-Framework verwendet das Hibernate-Framework zur Kommunikation mit Backend-Datenbanken. JMatter verwendet das Java Swing Toolkit zur Erstellung von Client-Anwendungen. Die Gesamtarchitektur besteht aus zwei Ebenen: Die Client-Anwendung kommuniziert über das Netzwerk mit der Back-End-Datenbank. Mehrere Clients können auf mehreren Workstations installiert werden, und mehrere Benutzer können gleichzeitig auf das System zugreifen. Das JMatter-Framework basiert auf dem Naked Object-Muster. Das bedeutet, dass das Framework automatisch die objektorientierte Benutzeroberfläche für die von uns erstellten Model Objects erstellt. Installation: Es ist sehr einfach, JMatter zu installieren. JMatter erfordert J2SE 5 oder höher und Ant 1.6 oder höher. Laden Sie jetzt die Zip-Version des JMatter-Frameworks herunter, entpacken Sie sie und verwenden Sie sie. Beispielanwendung: Sehen wir uns an, wie Sie mit JMatter eine Null-Code-Kontaktmanager-Anwendung erstellen. Eine typische Kontaktmanager-Anwendung verwaltet die Kontakte verschiedener Personen und bietet CRUD-Aktivitäten für Personen. Um ein neues Projekt in JMatter zu erstellen, rufen Sie das Ant-Target new-project-ui auf: $ cd jmatter $ ant new-project-ui Dann erscheint ein Dialog, in dem Sie nach dem Projektnamen und dem Verzeichnis gefragt werden. Geben Sie die Details ein und klicken Sie auf OK. JMatter erstellt das Projektverzeichnis mit der folgenden Struktur. $ cd ../CM $ ls build.xml doc/ resources/ src/ test/ JMatter erstellt die obige Verzeichnisstruktur für Ihr Projekt, zusammen mit seiner eigenen Ant-Build-Datei. JMatter bietet eine Reihe von universellen Geschäftsobjekten, einschließlich Personen, deren Kontaktinformationen, Adressen und Unternehmen. In dieser Beispielanwendung habe ich die vordefinierten Implementierungen von Person und Business wiederverwendet, deren vollqualifizierte Klassennamen com.u2d.type.composite.Person bzw. com.u2d.type.composite.Business lauten. Bevor wir unser Datenbankschema erstellen können, müssen wir JMatter die verschiedenen Objekttypen mitteilen, die wir persistieren möchten. Dies können wir tun, indem wir eine Annotation (@Persist) direkt zu den von uns definierten Modellklassen hinzufügen. Da wir in dieser Anwendung jedoch bereits existierende Modellklassen verwenden, bearbeiten wir die zugrunde liegende Vorlage src/persistClasses.st direkt:

..
com.u2d.type.composite.Person
com.u2d.type.composite.Business
..

Wir sind nun bereit, das Datenbankschema zu erstellen: $ ant schema-export Beachten Sie, dass JMatter hinter den Kulissen für jede Klasse eine Hibernate-Datenbank-Mapping-Datei generiert und schließlich Hibernate bittet, die DDL-Anweisungen (Data Definition Language) zu generieren und an die Datenbank zu senden. Standardmäßig verwendet JMatter die H2-Datenbank, aber wir können es so konfigurieren, dass eine beliebige Datenbank verwendet wird. Die Klassenleiste: JMatter gibt den Standardbildschirm für alle seine Anwendungen vor. Auf der linken Seite des JMatter-Anwendungsbildschirms befindet sich eine Klassenleiste, die verschiedene Symbole wie Benutzer, Rollen, Typen, Ordner usw. enthält. Wenn wir mit der rechten Maustaste auf diese Symbole klicken, können wir alle CRUD-Operationen durchführen, die JMatter nach dem Naked Object-Muster anbietet. Wir können auch unsere eigenen Modellobjekte zur Klassenleiste hinzufügen, nachdem wir die Klassen geschrieben haben. Wir können src/class-list.xml bearbeiten, um unsere eigenen Modellobjekte zur Klassenleiste hinzuzufügen.


Klassenliste

Modell

com.u2d.type.composite.Person
com.u2d.type.composite.Business
com.u2d.type.composite.Folder
...

Hier haben wir das Person-Objekt hinzugefügt, das bereits von JMatter zur Verfügung gestellt wird. Starten Sie die Anwendung: Führen Sie das Ant-Target , ant run, aus. Melden Sie sich bei der Anwendung mit dem Standard-Login admin (admin) an. Wir können auch unser Passwort ändern. Erstellen Sie nun die Personenobjekte mit den Kontakten. Wir haben 0 Zeilen Code für diese Anwendung geschrieben. Das macht das Leben des Entwicklers einfach!! JMatter bietet die CRUD-Funktionen für Person oder jedes andere Objekt, das Sie nach dem Naked Object-Muster entwickeln. Alle Datenbankoperationen und Hibernate-Mappings werden von JMatter übernommen.Orthogonale Dienste wie Anmeldedialog, Protokollierung, Persistenz, Lokalisierung usw. werden von JMatter bereitgestellt. Wir müssen lediglich die Model Objects implementieren. Im Folgenden finden Sie ein Beispiel für eine Musterklasse für Object Song.

Paket com.u2d.mytunes;
import com.u2d.type.atom.StringEO;
import com.u2d.type.atom.ImgEO;
import com.u2d.model.AbstractComplexEObject;
import com.u2d.model.Title;
import com.u2d.list.RelationalList;
import com.u2d.persist.Persist;
@Persist
public class Album extends AbstractComplexEObject
{
private final StringEO _name = new StringEO();
private final ImgEO _cover = new ImgEO();
public static final String[] fieldOrder = {"name", "cover"};
public Album() {}
public StringEO getName() { return _name; }
public ImgEO getCover() { return _cover; }
public Titel title() { return _name.title(); }
}

Wir können diese Klasse zur Klassenleiste hinzufügen und sie verwenden. JMatter stellt alle CRUD-Operationen zur Verfügung. Sehen wir uns nun an, was der obige Code (Klasse Album.) bewirkt... AbstractComplexEObject ist die Basisklasse, die von allen JMatter-Modellobjekten erweitert wird. JMatter stellt uns viele atomare Typen zur Auswahl, darunter Typen für Telefonnummern, Sozialversicherungsnummern, Zeitdauern, Bilder, E-Mail-Adressen, Farben und vieles mehr. StringEO ist nur eine Erweiterung von String. Es gibt zwei Unterschiede zwischen einem StringEO und einem TextEO: 1) StringEO werden in der Datenbank als varchar-Typen gespeichert (die Grenze liegt in der Regel bei 255), während TextEOs als Texttypen oder andere ähnlich große Textobjekte gespeichert werden; und 2) StringEO-Editoren in der grafischen Benutzeroberfläche sind Textfelder, während TextEO-Editoren Textbereiche sind. Wir können uns den EO-Teil des Typnamens als Akronym für Enhanced Object vorstellen. Fazit: Ich hoffe, Sie haben eine ausführliche Einführung in JMatter erhalten. Ich bin mir immer noch nicht sicher, inwieweit wir JMatter nutzen können, wenn die Komplexität der Anwendung zunimmt. Aber für kleine Anwendungen für Betriebsgruppen, die über ein LAN verbunden sind, ist es absolut großartig. Ich würde mich freuen, wenn Sie mir Ihre Erfahrungen mit der Handhabung komplexer Projekte mit JMatter mitteilen würden. Referenzen: jmatter.org Weitere Informationen finden Sie auf der Website jmatter.org.

Verfasst von

Sunil Prakash Inteti

Contact

Let’s discuss how we can support your journey.