Fondamentalmente ho un bean in Spring che volevo attivare solo quando 2 profili sono attivi. In sostanza, sarebbe come:Spring: profili multipli attivi
@Profile({"Tomcat", "Linux"})
public class AppConfigMongodbLinux{...}
@Profile({"Tomcat", "WindowsLocal"})
public class AppConfigMongodbWindowsLocal{...}
Così mi piacerebbe che quando uso -Dspring.profiles.active=Tomcat,WindowsLocal
, che avrebbe cercato di utilizzare solo il AppConfigMongodbWindowsLocal
, ma cerca ancora di registrare il AppConfigMongodbLinux
.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appConfigMongodbLinux': Injection of autowired dependencies failed
E 'possibile rendere il bean registrato solo quando entrambi i profili sono attivi o lo sto utilizzando in modo errato? :)
Grazie !!
Modifica: registrazione dello stack completo.
L'errore si trova effettivamente su una proprietà mancante nelle proprietà, ma questo bean verrà attivato? Volevo capire questo al fine di garantire non sto attivando un fagiolo sbagliato ..
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appConfigMongodbLinux': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.Integer mycompany.config.AppConfigMongodbLinux.mongoPort; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'mongo.port' in string value "${mongo.port}"
... 40 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.Integer mycompany.config.AppConfigMongodbLinux.mongoPort; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'mongo.port' in string value "${mongo.port}"
...
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'mongo.port' in string value "${mongo.port}"
Questo non sembra un problema con i profili. Controlla se i bean autowired in appConfigMongodbLinux sono disponibili. Pubblica traccia dello stack completo. –
@ShankarPS Sembra un problema con i profili. Un file di configurazione che non desidera attivare sta cercando una proprietà non disponibile in quella configurazione. – chrylis