learning spring factory