Following up on https://github.com/spring-projects/spring-framework/issues/26884#issuecomment-929000919, our optional JNDI support for injection points - and therefore the java.naming module on JDK 9+ - is being referenced in two common places: CommonAnnotationBeanPostProcessor and StandardServletEnvironment. Since we're only really referring to JNDI API types such as javax.naming.NamingException through our own support classes, we can easily make this defensive with a reflective jndiPresent check before touching our actual JNDI support classes.

While java.naming is a minor concern on 5.3.x (where the much larger java.desktop is still a required module as well), this is easy enough to address there, in preparation for a more significant benefit in 6.0 (#26884).