Best Practice Application-Config wie handhaben

Bela B.

Aktives Mitglied
Hallo zusammen,

wie würdet ihr denn am besten die Konfiguration für ein Programm lösen?

Also damit mein ich nicht ob JSON, XML, .env, ... sondern wie ihr das im Code abbildet.

Z.b. per Singleton oder Class mit static Methoden oder ganz anders?
 

mrBrown

Super-Moderator
Mitarbeiter
Kommt auf die Anwendung drum herum an. Wenn irgendeine Art von Dependency-Injection-Framework genutzt wird über dieses, die Konfiguration auf entsprechende Klassen abbilden und als Singleton (nicht Singleton-Pattern) bereitstellen.
 
K

kneitzel

Gast
Ja, bei DI Frameworks mache ich es ebenso wie mrBrown.

Ohne DI Framework mache ich teilweise ein "DI für Arme" - dann habe ich eine kleine ApplicationContext Klasse, die dann sozusagen die Instanzen meiner "Beans" bereit stellt. Also keine Auto Injection über Annotations aber ich habe ein ApplicationContext über den ich meine "Beans" bekomme...
Also über <T> T getBean(Class<T> requiredType) die ja in ApplicationContext bei Spring (oder besser: dem Interface BeanFactory von dem ApplicationContext erbt)

Ob das so eine gute Idee ist / war, weiss ich selbst nicht so sicher. Da würden mich dann Meinungen / Feedback auch interessieren :)
Ich war halt bisher vor allem auf dem Backend unterwegs und beim Frontend hatte ich dann auch erst DI mit drin, aber ist ja Unsinn, da massive Frameworks aufzufahren für absoluten Pipifax ...
 

Bela B.

Aktives Mitglied
Handelt sich bei mir um meistens normale Anwendungen, also kein Java EE. Im aktuellen Fall geht es bei mir um einen Discord Bot.

Ein DI habe ich aktuell nicht und habe auch noch mit keinem gearbeitet. Gibt es da für Java SE Empfehlungen von euch?
 
K

kneitzel

Gast
Google guice wäre als DI Framework wohl meine Empfehlung. Wenn die Konfiguration aber wirklich das Einzige ist, dann ist es evtl. durchaus angebracht, das entweder per Singleton Pattern zu machen oder einfach eine Instanz zu erzeigen, die dann dahin gereicht wird, wo diese benötigt wird.
 

mrBrown

Super-Moderator
Mitarbeiter
Handelt sich bei mir um meistens normale Anwendungen, also kein Java EE. [...]
Ein DI habe ich aktuell nicht und habe auch noch mit keinem gearbeitet. Gibt es da für Java SE Empfehlungen von euch?
Die meisten Java-EE-APIs lassen sich auch in normalen Anwendungen nutzen, zB CDI :)

Ansonsten gibts noch Guice, Spring, Dagger, ..., die im Prinzip alle geeignet sind.
 

looparda

Top Contributor
Sisu ist ein weiteres DI-Framework, über welches ich mal gestolpert bin und es interessant fand, da es viel Auto-Configuration übernimmt.
https://www.eclipse.org/sisu/ hat gesagt.:
Sisu uses Google-Guice to perform dependency injection and provide the core JSR330 support, but removes the need to write explicit bindings in Guice modules.
 

Bela B.

Aktives Mitglied
Habe mir gerade Guice etwas angeschaut, gefällt mir ganz gut, auch wenn ich noch nicht die ganze Tragweite davon abschätzen kann.

Werde Mal erste Versuche damit
 

Ullenboom

Bekanntes Mitglied
Da die meisten (ernsthaften) Programmen doch irgendwann immer größer werden sollte man darüber nachdenken gleich ein Framework zu nutzen. Ich mache alles mit Spring Boot, eine Nummer kleiner wäre CDI mit der RI Weld (http://weld.cdi-spec.org/), was man auch gut für Java SE-Anwendungen nutzen kann.
 

Bela B.

Aktives Mitglied
Will mich jetzt wie gesagt mal in Guice einarbeiten, habe da eine Präsentation von zwei Google-Mitarbeitern angeschaut, die mich dann doch überzeugt hat.

Aktuell bin ich noch am Grundgerüst meines Bots bauen.
 

Bela B.

Aktives Mitglied
Und schon zu Beginn hänge ich bei Guice.

Soweit ich das bisher verstanden habe, injected Guice automatisch eine Instanz von java.util.Logger, ich benutze allerdings slf4j als Logging-Framework und da speziell Logback.

Wie bringe ich Guice also nun dazu, den Logger zusammen mit dem entsprechenden Class-Name zu injecten?

Für das Config-Interface würde ich dann einen Scope.Singleton verwenden?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
Johannes_ece Fehler: Application Terminated (TypeError): var$0.$moveToolTo is not a function Java Basics - Anfänger-Themen 4
N Erste Schritte Karte in SWING Application Java Basics - Anfänger-Themen 4
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
S UserPref und Java Application klappt immer nicht. Java Basics - Anfänger-Themen 2
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
J JavaFX aus Java-Application heraus starten Java Basics - Anfänger-Themen 7
L Erste Schritte Herangehensweise an Java-Application Java Basics - Anfänger-Themen 4
D JNLP - Unable to launch the application Java Basics - Anfänger-Themen 8
Y MenuBar in Application anzeigen Java Basics - Anfänger-Themen 7
P Application Server Java Basics - Anfänger-Themen 3
H archive vergleichbarer Paramter unter Tag Object mit Parameter codetype="application/java-vm" Java Basics - Anfänger-Themen 3
Spin Server Location is not an Sun Java System Application Server 8.2 Java Basics - Anfänger-Themen 2
D Entscheidungshilfe: Applet oder Application? Java Basics - Anfänger-Themen 6
G Applet in einer Application laden Java Basics - Anfänger-Themen 8
H Application kann nicht gestartet werden Java Basics - Anfänger-Themen 29
M einfache java application Java Basics - Anfänger-Themen 4
V Problem bei java Application Java Basics - Anfänger-Themen 3
G Java Applet und Java Application Java Basics - Anfänger-Themen 2
K Java Application mit Batch-datei starten Java Basics - Anfänger-Themen 9
J GUI Application Java Basics - Anfänger-Themen 4
G Funktion "Remote Java Application" in Eclipse Java Basics - Anfänger-Themen 2
F JFrame bei Start von Application öffnen Java Basics - Anfänger-Themen 15
D JDBC Treiber unter dem Java Application Server Java Basics - Anfänger-Themen 6
D Starten einer Class auf Java Application Server Java Basics - Anfänger-Themen 14
G Web-Application kompilieren Java Basics - Anfänger-Themen 3
H Rechteck ziehen bei einer Application Java Basics - Anfänger-Themen 2
A java application to exe-file, executable under windows Java Basics - Anfänger-Themen 2
H Wie Consolen Application mehrfach duchlaufen lassen? Java Basics - Anfänger-Themen 10
H Application vernünftig darstellen und beenden Java Basics - Anfänger-Themen 2
M Java Application Server - Webanwendungen Java Basics - Anfänger-Themen 13
G Highscoreliste mit Java erstellen [Application] Java Basics - Anfänger-Themen 6
K Java Sound Application Java Basics - Anfänger-Themen 2
D Java Application verpacken Java Basics - Anfänger-Themen 3
S Application starten / Applets + 3rd Person APIs Java Basics - Anfänger-Themen 10
J Inhalt einer Application speichern Java Basics - Anfänger-Themen 3
L Application als Dienst starten Java Basics - Anfänger-Themen 4
J Applet -> Application Java Basics - Anfänger-Themen 22
R applet -> application->thread Java Basics - Anfänger-Themen 5
M Application in Browser? Java Basics - Anfänger-Themen 3
I gemeinsame Config-Datei für alle Windows-User Java Basics - Anfänger-Themen 5
T Config: Projekt erkennt Javaversion nicht Java Basics - Anfänger-Themen 12
M JFS- Ordner von faces-config.xml Java Basics - Anfänger-Themen 2
L Java Bukkit Plugin + config.yml Java Basics - Anfänger-Themen 5
H config Datei erstellen + einlesen Java Basics - Anfänger-Themen 15
R Classpath java.io.IOException: Could not find resource mybatis-config.xml Java Basics - Anfänger-Themen 5
1 Config Java Basics - Anfänger-Themen 19
O Einlesen einer "config.ini" funktioniert plötzlich nicht mehr ! Java Basics - Anfänger-Themen 10
-horn- Wie am Einfachsten mit Config-Datei umgehen. Welches Format? Java Basics - Anfänger-Themen 6
T Config File in Jar Datei öffnen Java Basics - Anfänger-Themen 1
R Config-Datei überschreiben. Java Basics - Anfänger-Themen 3
F config.xml innerhalb eines Servlets laden Java Basics - Anfänger-Themen 4
V filereader soll aus config.txt pfade lesen Java Basics - Anfänger-Themen 6
C Text(String) als File handhaben Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben