Your are using EJB's Singleton here. There is a paragraph about no-arg constructors and no-interface classes in the EJB 3.1 reference (3.4.4) https://jcp.org/aboutJava/communityprocess/mrel/jsr318/index3.html
Most important quote:
"The developer of an enterprise bean that exposes a no-interface view must not make any assumptions about the number of times the bean class no-arg constructor will be called. For example, it is possible that the acquisition of a client reference to the no-interface view will result in the invocation of thebean-class constructor. It is recommended that the bean developer place component initialization logic in a @PostConstruct method instead of the bean class no-arg constructor."
This means that every time you call the supposed-to-be-singleton class, the constructor might get called. Those behaviour will trigger the expensive driver creation again and again.