The $ sign appears in the class name because DeliveryMode is a nested (or inner) class defined inside the JMSTransportInfo class.
In Java, when the compiler produces the bytecode class files for inner or nested classes, it uses a dollar sign ($) to separate the outer class name from the inner class name.
Why it looks like this:
-
Outer Class:
com.citigroup.get.quantum.messaging.transport.JMSTransportInfo -
Inner Class:
DeliveryMode(which is likely a Javaenumor a static nested class) -
Compiled Class File Name:
JMSTransportInfo$DeliveryMode.class
In Spring XML Configuration:
Because Spring's XML configuration uses standard Java reflection (Class.forName()) to instantiate or reference classes, it requires the fully qualified internal binary name—which uses the $ notation for inner classes.
In this specific snippet, it is used alongside factory-method="valueOf" to instantiate a specific enum constant (like Persistent) for the deliveryMode property.
Top comments (0)