Spring的bean默认就是单例模式,除非你修改过,你这里说的每次执行都不一样是因为你每次执行都要重新初始化Spring的bean,所以才不一样.
如果你是在一次主方法执行中连续取得两次这个Bean你就会发现该Bean只创建了一次.
从我的理解应该是书上讲错了。
所谓IoC,简单理解就是把原本应该我们去new对象这个操作转到spring容器去执行。
而且IoC核心其实就是一个工厂模式,而工厂模式就是制造(new)对象的,工厂模式中,一般都是利用反射来new具体的对象,然后返回实例。
而楼主的例子也证实了,每次都是new Data();