当前位置: 代码迷 >> J2EE >> Spring配置过剩的bean会影响性能吗
  详细解决方案

Spring配置过剩的bean会影响性能吗

热度:16   发布时间:2016-04-17 23:42:05.0
Spring配置过多的bean会影响性能吗
例如有A.B两个类。
B要复用A中的c方法,于是在spring配置里把A注入B。在B中只要调用A.c就行了。
但是,假如,每当要复用别类的方法,就要注入整个对象,对系统性能是否有影响。
望各路大侠解答

------解决思路----------------------
你担心的太多了吧 
这点开销对性能能有什么影响
------解决思路----------------------
无关紧要,多创建一个实例几乎没影响,忽略不计。
如果你还有CDEFG...等等一大批都要调用它影响也不大
只调用其中一个方法的话你就直接把方法在B中,再写一遍,要是调用的比较多,注入一个也是必须的,楼主你多虑了。
------解决思路----------------------
你的bean如果是单例的,在启动的时候就已经初始化,后面注入的都是引用,对性能毫无影响.
------解决思路----------------------
担心这个问题的话可以考虑lazy-init: <bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>

------解决思路----------------------
首先Spring容器本身融入的大量设计模式,其次它的设计初衷就是为了进行动态注入,对于你的问题,实际上Spring就是为了向你说的那样用的,如果多的话可以逐层依赖,例如:
<!-- customer bean a dao(sessionFactory) -》service(dao)-》action(service)逐层依赖 -->

<bean id="customerDao" class="com.shop.dao.impl.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
    
<bean id="customerService" class="com.shop.service.impl.CustomerServiceImpl">
<property name="dao" ref="customerDao"></property>
<property name="commonDao" ref="commonDao"></property>
</bean>
    
<bean id="customerAction" class="com.shop.struts.action.CustomerAction"
scope="prototype">
<property name="service" ref="customerService"></property>
</bean>
    
  相关解决方案