![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
|
Aktuell stoße ich an die Grenzen, ab denen die Properties-API beginnt, extrem hässlich zu werden, deswegen suche ich nach nem geeigneten Ersatz.
Die Preferences-API wäre ein möglicher Zufluchtspunkt, verfügt aber auch nicht über alle notwendigen Funktionen. Vielleicht sollte ich erstmal erklären, worum es geht. Folgendes also: Ich möchte nicht nur einfache String-String-Paare speichern, sondern String-List<Object>. z.B. möchte ich eine Liste von FTP-Daten speichern können, ohne mit hundertausend Keys rumspielen zu müssen (ich hab's aktuell mit der Properties-API realisiert und es ist ekelhaft). Zur Verdeutlichung, hier mal ein Beispiel dessen, was ich mir vorstelle: PHP-Code:
PHP-Code:
Meine Frage wäre nun also, ob jemand von euch eine entsprechende API kennt oder selbst geschrieben hat und bereit wäre, sie mit dem Rest der Welt (bzw. für den Anfang mit mir) zu teilen. Weil aktuell hab ich nur begrenzte Lust, sowas selbst zu schreiben.
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
|
hallo,
wenn es darum geht mehrdimensonale daten abzuspeichern sind properties sicherlich nicht das richtige format, entweder es ended wie du schon sagtest damit das man hunterttausend schlüssel für ein object/array hat oder man speichert die objekte/arrays als serialisierter werte, was aber dann unübersichtlich und umständlich wird wenn man von hand in der konfiguration rumhacken will... ich benutze einen selbstgeschriebenen properties manager, der einfache arrays in einem wert speichert und das ganze auch noch für einen menschen zu lesen ist... ein simples beispiel: Code:
frame.background.color=[255,255,255] frame.size=[600,400] ... ich würde hier empfehlen die daten als xml datei zu speichern. normalerweise müsste man ja auch hier ein spezielles mapping für jedes objekt erstellen, aber glücklicherweise gibt es ja genug kluge köpfe die sich um sowas gedanken machen... so bin ich im letzen javamagazin auf XStream gestoßen, ein kleines framework (die grundausstattung ist 242kb sind zwar eigentlich auch viele nullen und einsen, aber immerhin ists mehr als die hälfte kleiner als die commons) mit dem man ohne mapping objekte und primitive datentypen serialisieren kann... die verwendung ist sehr einfach, alle features werden durch eine Fassade angesprochen. Code:
public class XTest {
static class ConnectionData{
String host;
String user;
String pass;
public ConnectionData(String host,String user,String pass){
this.host=host;
this.user=user;
this.pass=pass;
}
}
public static void main(String[] args) {
XStream x = new XStream();
x.alias("ConnectionData",ConnectionData.class);
// serialisieren
String xml = x.toXML(new ConnectionData("google.de","test","geheim"));
// desierialisieren
ConnectionData p = (ConnectionData)x.fromXML(xml);
}
}
Code:
<ConnectionData> <host>google.de</host> <user>test</user> <pass>geheim</pass> </ConnectionData> mfg beny |
|
|
|
|
|
Nach oben #3 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
|
XStream sieht wirklich unglaublich gut aus! Das werde ich wohl nicht nur hier gebrauchen können.
Die ~250kb investiere ich gerne, weil ich dann direkt dom4j (~1MB) wieder rausschmeißen kann. Wirklich sehr nett. Mal schaun, was ich damit alles anstellen kann. Danke dir.
__________________
Patrick Gotthardts Weblog. |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
|
unkomplizierter gehts nicht.
hab echt nicht geglaubt das es so einfach ist, bis ichs mit eigenen augen gesehen hab... kein stundenlanges rumgefummel mehr mit dom bäumen und auch kein dauerndes implementieren von SAXHandler für jeden scheiß... wenn du eine schöne registry gebaut hast kannst du sie ja mal hier posten oder mir an beny_mcde ät gmx.de mailen, ich mach im moment alle config geschichten mit strings und das wird mit der zeit nerfig weil man die werte immer umwandeln muss bevor man sie verwenden kann... werd mir bald mal zeit nehmen um xstream ein bischen auszutesten... was performance und so angeht, insbesonders wenn man große objektbäume(z.b. eine komplette benutzeroberfläche usw) serialisiert... |
|
|
|
|
|
Nach oben #5 |
|
Projektleiter
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
|
Soo... hab mir jetzt endlich was zusammengehackt.
PHP-Code:
PHP-Code:
PHP-Code:
Kommentare, Vorschläge, etc. wären mir lieb. (Ich hab da jetzt nicht allzu lang drüber nachgedacht.)
__________________
Patrick Gotthardts Weblog. |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Anmeldeseite]Firefox will Passwort speichern | WarrenFaith | HTML, XML und CSS | 13 | 10.09.2007 11:54 |
| DAtensatz in Variable Speichern und in eine Tabbele speichern | kampfgnom | Datenbanken | 11 | 10.12.2006 20:45 |
| Schwachstelle in PHP - Umgehung von Einstellungen möglich | WarrenFaith | Nachrichten | 9 | 14.09.2006 17:40 |
| [Rezension] Professionelle PHP 5-Programmierung, | Ben | Literatur | 11 | 27.07.2006 20:48 |