"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जेएनडीआई (जावा नेमिंग और डायरेक्ट्री इंटरफ़ेस) का त्वरित अवलोकन

जेएनडीआई (जावा नेमिंग और डायरेक्ट्री इंटरफ़ेस) का त्वरित अवलोकन

2024-11-16 को प्रकाशित
ब्राउज़ करें:272

Quick look of JNDI (Java Naming and Directory Interface)

कहना आसान है, प्रोग्रामर निम्नलिखित क्वेरी करने के लिए उसी जेएनडीआई इंटरफ़ेस का उपयोग कर सकता है

  • एप्लिकेशन सर्वर द्वारा प्रदान किए गए लुकअप संसाधन, जैसे डेटा स्रोत
  • एलडीएपी प्रविष्टियां खोजें
  • डीएनएस रिकॉर्ड खोजें

संक्षिप्त परिचय यहां है।

कोड

एप्लिकेशन सर्वर के संसाधनों को "java:comp/env" उपसर्ग के अंतर्गत रखा गया है। मान लें कि एक डेटा स्रोत चालू है

java:/comp/env/jdbc/db1

उस डेटा स्रोत को प्राप्त करने के लिए

javax.naming.Context initialContext = new javax.naming.InitialContext();
javax.naming.Context subContext = (javax.naming.Context) initialContext.lookup("java:comp/env");
DataSource dataSource = (DataSource) subContext.lookup("jdbc/db1");

या आप पूर्ण पथ प्रदान करके सीधे उदाहरण प्राप्त कर सकते हैं

javax.naming.Context initialContext = new javax.naming.InitialContext();
DataSource dataSource = (DataSource) initialContext.lookup("java:comp/env/jdbc/db1");

स्प्रिंग बूट एकीकरण

बस application.properties
में एक पंक्ति जोड़ें

spring.datasource.jndi-name=java:/comp/env/jdbc/db1

संबंधित बीन org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration
द्वारा बनाया गया है

@Configuration(proxyBeanMethods = false)
@AutoConfigureBefore({ XADataSourceAutoConfiguration.class, DataSourceAutoConfiguration.class })
@ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })
@ConditionalOnProperty(prefix = "spring.datasource", name = "jndi-name")
@EnableConfigurationProperties(DataSourceProperties.class)
public class JndiDataSourceAutoConfiguration {

    @Bean(destroyMethod = "")
    @ConditionalOnMissingBean
    public DataSource dataSource(DataSourceProperties properties, ApplicationContext context) {
        JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
        DataSource dataSource = dataSourceLookup.getDataSource(properties.getJndiName());
        excludeMBeanIfNecessary(dataSource, "dataSource", context);
        return dataSource;
    }

    private void excludeMBeanIfNecessary(Object candidate, String beanName, ApplicationContext context) {
        for (MBeanExporter mbeanExporter : context.getBeansOfType(MBeanExporter.class).values()) {
            if (JmxUtils.isMBean(candidate.getClass())) {
                mbeanExporter.addExcludedBean(beanName);
            }
        }
    }

}
विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/saladlam/quick-look-of-jndi-java-naming-and-directory-interface-13gi?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3