增加了工厂类和spring支持