2015-06-10 14 views
5

स्प्रिंगबूट प्रोजेक्ट में जो मैं काम करता हूं वसंत-डेटा-मगोडब पर एक संक्रमणशील मेवेन निर्भरता है। इसलिए MongoHealthIndicator स्वचालित रूप से सक्रिय होने लगता है हालांकि परियोजना वास्तव में mongodb का उपयोग नहीं करता है। क्या एक्ट्यूएटर स्वास्थ्य एंडपॉइंट को निष्क्रिय किए बिना विशेष रूप से इस हेल्थ इंडिकेटर को निष्क्रिय करना संभव है? एक कामकाज जो मैंने पाया वह निर्भरता को छोड़कर है। लेकिन मैं सोच रहा था कि मोंगोहेल्थ इंडिकेटर के इस विशिष्ट निष्क्रियता को करना संभव है या नहीं।क्या स्प्रिंगबूट वसंत एक्ट्यूएटर स्वास्थ्य एंडपॉइंट में मोंगोहेल्थ इंडिकेटर को निष्क्रिय करना संभव है?

+0

आप इसे अक्षम कर सकते हैं, लेकिन स्वास्थ्य संकेतक केवल तभी शुरू होगा जब 'मोंगो टेम्पलेट' बीन के रूप में उपलब्ध हो, जो बदले में उपलब्ध होगा यदि कोई मोंगो इंस्टेंस सक्रिय हो। तो शायद आप अधिक सोच रहे हैं तो यू सोचें (जो शायद आपके आवेदन के प्रभाव (स्टार्टअप) प्रदर्शन)। –

उत्तर

6

से इस प्रयास करें:

http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

# HEALTH INDICATORS (previously health.*) 
... 
management.health.mongo.enabled=true 
... 

आप स्वास्थ्य सूचक निष्क्रिय करने के लिए गलत पर कि स्थापित करने के लिए सक्षम होना चाहिए। org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration.java से

@Configuration 
@ConditionalOnBean(MongoTemplate.class) 
@ConditionalOnProperty(prefix = "management.health.mongo", name = "enabled", matchIfMissing = true) 
public static class MongoHealthIndicatorConfiguration { 
+0

उत्तर और दस्तावेज़ीकरण के लिंक के लिए धन्यवाद! –

0

अपने application.properties

management.health.mongo.enabled=false 
1

application.properties

management.health.mongo.enabled = false
endpoints.mongo.enabled = true

MongoDBHealthCheckEndPoint.java

@ConfigurationProperties(prefix = "endpoints.mongo", ignoreUnknownFields = true) 
@Component 
public class MongoDBHealthCheckEndPoint extends AbstractEndpoint<Map<String, String>> 
{ 

    @Inject 
    MongoTemplate mongoTemplate; 


    private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); 

    private static final Map<String, String> UP = new HashMap<String, String>() {{ 
     put("mongo.status", "UP"); 
    }}; 

    private static final Map<String, String> DOWN = new HashMap<String, String>() {{ 
     put("mongo.status", "DOWN"); 
    }}; 


    public MongoDBHealthCheckEndPoint() { 
     super("mongo", false); 
    } 

    public MongoDBHealthCheckEndPoint(Map<String, ? extends Object> mongo) { 
     super("mongo", false); 
    } 

    public Map<String, String> invoke() { 
     try { 
      return (new MongoHealthIndicator(mongoTemplate).health().getStatus().equals(Status.UP)) ? UP : DOWN; 
     } catch (Exception e) { 
      log.error("mongo database is down", e); 
      return DOWN; 
     } 
    } 
} 
संबंधित मुद्दे