2016-04-21 19 views
7

Mam proste głównego aplikacji:Wiosna Boot nie ładuje application.yml config

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

Z config:

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

i właściwości:

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

próbuję konfiguracja obciążenia:

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

Ścieżka jest poprawna. Ale yml nie jest załadowany;

plik aplikacji eho.yml:

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

root: 
    name: EHO-BOT 

App działa z argumentami, ale wszystkie rekwizyty null. Nieobsługiwane właściwości rejestrowania; sout:

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

--spring.profiles.active=eho 

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

nie dostarczyły wystarczającej ilości informacji. Na przykład, jak wygląda reszta twojej głównej klasy? Czy przekazałeś jego argumenty do aplikacji SpringApplication, która działa? –

+0

'@ EnableConfigurationProperties' nie jest wymagane moim zdaniem. Jaki wyjątek otrzymujesz? –

+0

Argumenty z aplikacji: '' '--spring.config.location = file: /// E:/Dropbox/Programowanie/java/telegram-boty-app/eho-bot/rekwizyty /' '' '' ' --spring.profiles.active = eho''' '' '--spring.output.ansi.enabled = always''' – yazabara

Odpowiedz

1

W tym momencie należy użyć wiosna-boot.

@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 { 

     } 
    } 

Zastosowanie webEnvironmet = false i BannerMode = off (Aplikacja konsoli).

Dokumenty, patrz https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-externalize-configuration

0

Spróbuj w ten sposób:

struktura aplikacji Obserwuj jak :

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

Application.java zawartość

@SpringBootApplication 
@RestController 
public class Application { 

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

} 

aplikacji eho.yml file:

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

root: 
    name: EHO-BOT 
+1

To nie pomoże, OP próbuje użyć pliku konfiguracyjnego specyficznego dla profilu. Boot szuka 'application-eho.properties' i' application-eho.yml' ponieważ 'eho 'profil jest aktywny. Ustawienie nazwy w taki sposób by oznaczało, że szuka' application-eho-eho.properties' oraz 'application-eho-eho.yml'. –

+0

Czy zrobiłeś" profil eho jest aktywny. "? "Prosta sugestia nie ma żadnych innych konfiguracji. Po prostu rób to, co robiłem w klasie Application.java To działa dla mnie .. W aplikacji jak" mikroserwisy ". –

Powiązane problemy