Spring不用注入获取bean,这样获取applicationContext.getBean()有什么好处吗?

2024-11-28 19:47:53
推荐回答(5个)
回答1:

我接触spring自动注入的时间并不长,依稀记得有一点,一个类里可以使用自动注入其他bean的前提是这个类本身的管理也是要交给spring容器的。你调用这个方法所在的类可能并不是由spring来管理的,也就是说采用@Autowired这种自动注入应该是无效的,在针对这种情形,spring确实提供这样一种途径,就是在无法自动注入的情况下,直接调用beanfactory去拿某个bean的实例,调用这样方法得到的实例是跟自动注入得到的实例是一样的。

但是如果你主动去new这样一个bean,那spring容器是不会帮助你把这个bean里的属性初始化好的。

如果可以直接自动注入,谁不想省事一点呢,以上基本是我个人一点浅薄的项目经验,希望对你有帮助。

回答2:

首先要清楚spring其实就是一个工厂,这样子充分体现了IOC/DI的好处,你只要注入就可以是使用了。这是有spring创建的,不需要自己创建,所以内存什么的就交给spring管理 了。

回答3:

是一样的,new的方式也可以,但是这样做就是控制连接资源分配了,要么比较占内存,大量访问的时候让服务器负载过大

回答4:

这个获取出来的bean是spring来创的。。他里面又可以注入很多其他的bean。要是你自己new就不行

回答5:

个人认为。。如果用new来实现的话,还需要导入复杂的包名,所以不如注入或者getbean来的方便。。至于注入和getbean的话,在这里我暂时看不出太大的差别。。