markdown-it
demo
Delete
Submit
clear
permalink
在Spring Boot應用中,JNDI(Java Naming and Directory Interface)通常用於將Java對象綁定到全局名稱。要列出所有的JNDI Binding Key及相應的Object內容,你可以使用`JndiTemplate`類。 以下是一個在Spring Boot中列出所有JNDI Binding Key及Object內容的範例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jndi.JndiTemplate; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.naming.Binding; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; @Service public class JndiListingService { @Autowired private JndiTemplate jndiTemplate; @PostConstruct public void listJndiBindings() { try { Context context = jndiTemplate.getContext(); listBindings(context, ""); } catch (NamingException e) { e.printStackTrace(); } } private void listBindings(Context context, String prefix) throws NamingException { NamingEnumeration<Binding> bindings = context.listBindings(""); while (bindings.hasMore()) { Binding binding = bindings.next(); String bindingName = prefix + binding.getName(); System.out.println("JNDI Binding Key: " + bindingName); System.out.println("Object: " + binding.getObject()); System.out.println("--------------------------------"); if (binding.getObject() instanceof Context) { listBindings((Context) binding.getObject(), bindingName + "/"); } } } } ``` 在這個例子中,我們使用`JndiTemplate`注入到`JndiListingService`服務中。在`@PostConstruct`標註的方法中,我們通過`JndiTemplate`獲取全局JNDI上下文,然後遞歸列出所有的綁定。 這僅僅是一個簡單的示例,實際應用中可能需要根據你的需求進行調整。請確保你的應用配置了相應的JNDI資源,以便在JNDI中有內容可供列舉。
html
source
debug
Fork me on GitHub