2016-04-21 6 views
7

ich einen einfachen Haupt-App habe:Frühlings-Boot nicht geladen application.yml Config

@Configuration 
    @EnableAutoConfiguration 
    @ComponentScan(basePackages = "dreamteam.eho") 
    @Import({EhoConfig.class}) 
    public class MainApp implements CommandLineRunner, ApplicationContextAware { 

Mit config:

@Configuration 
@EnableConfigurationProperties({RootProperties.class}) 
public class EhoConfig { 
} 

und Eigenschaften:

@ConfigurationProperties("root") 
public class RootProperties { 
    private String name; 

Ich versuche, laden Konfig:

--spring.config.location=file:///E:/.../eho-bot/props/ --spring.profiles.active=eho 

Pfad ist korrekt. Aber yml ist nicht geladen;

applikations eho.yml Datei:

logging: 
    file: D:/java/projects/telegram-bots/eho.log 
    level: 
    dreamteam.eho: INFO 
    org.springframework: DEBUG 

root: 
    name: EHO-BOT 

App läuft mit args, aber alle Requisiten null. Protokollierungseigenschaften nicht angewendet; sout:

--spring.config.location=file:///E:.../eho-bot/props/ 

--spring.profiles.active=eho 

--spring.output.ansi.enabled=always 
+0

Sie haben nicht genug Informationen zur Verfügung gestellt. Wie sieht zum Beispiel der Rest Ihrer Hauptklasse aus? Haben Sie die Argumente in der SpringApplication übergeben, die ausgeführt wird? –

+0

'@ EnableConfigurationProperties' ist meiner Meinung nach nicht erforderlich. Welche Ausnahme bekommst du? –

+0

Argumente von app: '' '--spring.config.location = Datei: /// E:/Dropbox/Programmierung/Java/Telegramm-Bots-app/eho-bot/Requisiten /' '' '' ' --spring.profiles.active = eho''' '' '--spring.output.ansi.enabled = immer''' – yazabara

Antwort

1

Zu diesem Zeitpunkt sollten Sie Feder-Boot verwenden.

@SpringBootApplication 
    public class ReTestsApplication implements CommandLineRunner { 

     public static void main(String[] args) { 
      SpringApplication application = new SpringApplication(ReTestsApplication.class); 
      application.setWebEnvironment(false); 
      application.setBannerMode(Banner.Mode.OFF); 
      application.run(args); 
     } 

     public void run(String... args) throws Exception { 

     } 
    } 

Verwenden Sie webEnvironmet = false und BannerMode = off (Konsolenanwendung).

Docs finden https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-externalize-configuration

0

auf diese Weise versuchen:

Folgen Anwendungsstruktur wie :

App 
└── src 
| ├── main 
|   ├── java 
|   │  └── <base-package> 
|   │    └── Application.java (having public static void main() method) 
|   │ 
|   ├── resources 
|    ├─── application-eho.yml 
| 
├──── pom.xml 

Application.java Inhalt

@SpringBootApplication 
@RestController 
public class Application { 

    public static void main(String[] args) { 
     System.setProperty("spring.config.name", "application-eho"); 
     SpringApplication.run(Application.class, args); 
    } 

} 

applikations eho.yml Datei:

logging: 
    file: D:/java/projects/telegram-bots/eho.log 
    level: 
    dreamteam.eho: INFO 
    org.springframework: DEBUG 

root: 
    name: EHO-BOT 
+1

Dies hilft nicht. Das OP versucht, eine profilspezifische Konfigurationsdatei zu verwenden. Boot sucht nach 'application-eho.properties' und' application-eho.yml', weil die 'eho 'profile ist aktiv. Wenn Sie den Namen so einstellen, wie er ist, bedeutet dies, dass er' application-eho-eho.properties' und 'application-eho-eho.yml' sucht. –

+0

Haben Sie das" eho profile active "aktiviert? ? Einfacher Vorschlag ist keine anderen Konfigurationen .. Tun Sie einfach wie ich in Application.java Klasse. Seine Arbeit für mich .. In der Anwendung wie "Microservices". –

Verwandte Themen