2017-04-14 4 views
0

Ich schreibe eine Spring-Boot-Anwendung, und ich möchte überprüfen, dass alle erwarteten Argumente oder externe Eigenschaften vor der Anwendung ausgeführt werden. Wann kann ich es tun? Ich finde Commons-CLI oder ARGS4J Bibliotheken, aber ich benutze es nicht mit einer Spring-Boot-Anwendung und wenn es eine gute Lösung ist. DankeSpring Boot und Argumente Validierung

+0

Meinst du nicht in 'null' gesetzt? – ndrone

Antwort

0

Setzen Sie Ihre Validierungslogik in Spring Boot Hauptmethode. Es gibt keine separate Möglichkeit, diese Bibliotheken in der Spring-Boot-Anwendung zu verwenden. Sie können Ihren Validierungscode innerhalb Ihrer Hauptmethode hinzufügen, um die Argumente zu parsen und die Validierung durchzuführen. U kann dafür beliebige args-Parser-Bibliotheken verwenden.

@SpringBootApplication 
public class MyApplication{ 
    public static void main(String[] args){ 
     validateArguments(args); 
     SpringApplication.run(MyApplication.class); 
    } 
    private static validateArguments(args){ 
     // validation logic - If validation fails throw IllegalStateException(); 
    } 
} 
+0

Danke ich werde deine Lösung benutzen – atoua

0

Es gibt mehrere davon, dies zu tun. Dieser Link erklärt alles, was https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

verfügbar ist, wenn Sie nur für nicht null sind, überprüft ist, dann können Sie @Value wie so

@Configuration 
public class ApplicationConfiguration 
{ 
    @Value("${name}") 
    private String name; 
} 

mit der über die Anwendung, wenn der Wert beim Start wird halt verwenden null

Wenn Sie andere Eigenschaften haben, die Sie sicherstellen müssen, dass sie einen bestimmten Wert haben, können Sie @ConfigurationProperties

@ConfigurationProperties(prefix = "test") 
public class ConfigProps 
{ 
    private String name; 

    public String getName() 
    { 
      return name; 
    } 
} 

@Configuration 
@EnableConfigurationProperties 
public class AppConfig 
{ 
    @Autowired 
    public AppConfig(ConfigProps configProps) 
    { 
      if (!"test".equals(configProps.getName()) 
      { 
       throw new IllegalArugmentException("name not correct value"); 
      } 
    } 
} 
verwenden
Verwandte Themen