2014-01-04 3 views
0

Мы используем пружину 3.2.Весенний инжекционный боб всегда одинарный

Мы определили фасоль myAccountVO в spring.xml файлах и задали область применения prototype, но весна создает этот компонент в качестве одноэлементного компонента.

Вот весной XML:

<bean name="myAccountVO1" 
     class="valueobject.AccountVO" 
     scope="prototype" > 
     <property name="accountNo" value="0105069413007" /> 
     <property name="accountType" value="01" /> 
    </bean> 

Класс обслуживания:

@Service //I've tested the @Scope("prototype") but no luck 
public class AccountSummary { 


    @Autowired //I also tested @Resource but same result 
    private AccountSummaryVO myAccountSummaryVO1; 

    AccountSummaryVO getAccount(){  
    return myAccountSummaryVO1 
    } 

} 

Позже мы используем эту услугу как:

@Autowired 
AccountSummary accountSummary; 
............ 

accountSummary.getAccount() 

Насколько я получаю AccountSummary class, сам по себе, является одиночным и не будет инстанцироваться каждый раз.

Кажется, что это очень простая утилита, но я не знаю, чего мне не хватает.

ответ

1

Я не вижу, где вы вводите myAccountVO1.

Но я думаю, когда вы обнаружите введенное место, что оно, вероятно, является членом боба, который сам по себе не входит в прототип области действия, например. @Service или @Controller. Сервисный компонент будет создан с созданным myAccountVO1, но этот экземпляр останется там навсегда.

Измените область содержимого компонента. См. 4.5.3 Singleton beans with prototype-bean dependencies.

Это относится также к бобам, в которые вставляются сервисные бобы.

Смежные вопросы