Spring by example