Ich habe einen Frühling Boot-Projekt, bei der Projektstruktur aussieht wie untenWarum kann @Value in diesem Abhängigkeitsmodul nicht aufgelöst werden?
example(artifactId = example)
+- demo(artifactId = demo)
| +- src
| | +-main
| | +-java
| | +-com
| | +-example
| | +-DemoService
| | +-resources
| | +-application.properties
| +- pom.xml
+- demo2(artifactId = demo2)
| +- src
| | +-main
| | +-java
| | +-resources
| | +-application.properties
| +- pom.xml
+-pom.xml
In diesem Projekt „demo2“ ist die Abhängigkeit der „Demo“. Das "Beispiel" -Modul ist das Elternteil von sowohl demo als auch demo2. Das
Das Problem ist, dass, wenn ich die Eigenschaft (site.password = Passwort) in application.properties der Demo, ich mag es diese
im Demo-Modul nicht lösen kann@Service
public class DemoService {
@Value("${site.password}")
private String password;
}
Aber wenn ich gesetzt es zu den application.properties in demo2, kann es im DemoService im Demomodul gelöst werden.
Vielen Dank im Voraus!
Zur Verdeutlichung: Demo2 ist die Hauptklasse.
Danke bekce. Ich stimme zu, dass die Konfiguration nicht in einem Glas verpackt werden sollte. In meinem Projekt habe ich ein Modul ("demo"), das die Dinge mit mysql und redis behandelt, und andere Module ("demo2", "demo3" ...) bekommen einfach Daten davon. Ich habe Eigenschaften in "demo" eingestellt, weil ich die mysql/redisis Eigenschaften nicht auf alle anderen Module kopieren möchte. Gibt es eine bessere Möglichkeit, das Projekt zu organisieren? Trennen Sie die Projekte beispielsweise von mehreren kleinen Projekten. Jedes Modul ist ein Projekt. "demo2" und andere erhalten Daten von "demo" via RPC. – Max
@Max Sie scheinen über die Modulverwaltung verwirrt zu sein.Es gibt zwei allgemeine Optionen für Ihren Fall: 1. Jedes Modul läuft von selbst und bietet Dienste über REST API, RPC oder MQ. Es gibt viele "Haupt" -Methoden, jedes Modul hat seine eigene Konfiguration. Dies wird auch als Microservice-Architektur bezeichnet. 2. Es gibt ein "Haupt" -Modul und es ruft Methoden abhängiger Module auf (dies ist kein RPC) sollte eine Konfiguration sein.Ihr Fall passt 2.Normalerweise bedeutet N laufende Instanzen N-Konfiguration, also setzen Sie alle conf in ein Modul.Wenn 'demo3' die' demo' Methode aufruft, einfach '@ Autowire' relevante Beans. – bekce