2017-12-18 3 views
0

Ich benutze Spring Boot. Boot-Konfiguration enthält in application.ymlEigenschaften Datei zu vo nur mit 1-Bean

das ist meine Situation.

Schnittstelle CommonService

Klasse AServiceImpl.java + a-config.properties Klasse BServiceImpl.java + b-config.properties ...

@PropertiesSource(value="${b.config.file.name}) 
@Service("bService") 
public class BServiceImpl implements CommonService{ 
    ... 
} 

Eigenschaften Dateien enthält gleiche Eigenschaft, Differenz Werte.

Ich möchte Eigenschaften in nur eigenen Service verwenden. und nicht Getter-Typ (nicht getProperty).

kann ich?

Antwort

0

Ich glaube, Sie nur eine Eigenschaft verwenden sollten @Autowired Umwelt dann und Sie können this.getClass() verwenden. GetSimpleName() für die dynamische Präfix Eigenschaftsname

application.yml

BServiceImpl : yourchild : yourvalue 

Aservice

@Service("aService") 
public class AServiceImpl implements CommonService{ 
    @Autowired 
    Environment env; 

} 

bService

@Service("bService") 
public class BServiceImpl implements CommonService{ 
    @Autowired 
    Environment env; 

} 

Wie Sie eine getProperty erhalten

env.getProperty(this.getClass().getSimpleName()+"yourchild"); 
Verwandte Themen