Why not teach Weld SE? This is basically the same as Weld in the J2EE 6+ specification, but the initialization of the IOC container must be done explicitly in the SE version, and the additional complexity inherent in the web tiers can be ignored.
In addition, Weld is actually quite minimalistic, and you can use very minimal examples that do not depend on complex things, such as having a servlet container, and then fully process it to a complete multi-level J2EE application if you so wish.
It is also an IOC standard, and although it does not have Spring or Guice market penetration, you get it for free with J2EE 6 containers.
http://seamframework.org/Weld
Note. . A warning. Welding errors can sometimes be useless in my experience. Spring gives a much clearer picture of what is wrong when things REALLY explode.
source share