一個實例方法我有三個類(A類,類乙,C類)在我的申請。調用使用自動裝配豆
我是一名初學者。試圖注入類B的豆用於類A使用@Autowired
註釋。我想利用Spring Bean的Singleton行爲,以便只有類B的實例無論從類A中調用多少次。
有一個在B類的方法,我想用這個bean B類從一個類調用。我怎樣才能做到這一點?
我知道如何在Java中實現一個singleton類,然後獲取唯一的實例來調用它的方法,但不知道如何使用spring單例bean來實現。
一個實例方法我有三個類(A類,類乙,C類)在我的申請。調用使用自動裝配豆
我是一名初學者。試圖注入類B的豆用於類A使用@Autowired
註釋。我想利用Spring Bean的Singleton行爲,以便只有類B的實例無論從類A中調用多少次。
有一個在B類的方法,我想用這個bean B類從一個類調用。我怎樣才能做到這一點?
我知道如何在Java中實現一個singleton類,然後獲取唯一的實例來調用它的方法,但不知道如何使用spring單例bean來實現。
春季單被定義爲「每Bean容器」
如果你想低於每spring容器單是需要你的bean定義
<bean id="myBean" class="MyBean"/>
做。如果你想每個單身什麼整個應用程序,而不是每個容器,那麼我相信你可以做到這一點的唯一方法是實現一個Singleton模式有一個私人構造函數,從它的靜態方法,如getInstance訪問/檢索它。你可以做的是讓春天來調用又可以返回一個對象
<bean id="myBean" class="MyBean" factory-method="getInstance"></bean>
每一個標記爲@Component
,@Service
,@Repository
等類中的方法是單身,但裏面只有一個Spring容器。所以最好說他們在single scope。
@Component
public class MyBean {
[...]
}
另一種選擇,以限定在單範圍bean是標記一個方法作爲@Bean
。返回類型將被緩存,所以你會如果要調用此方法始終使用同一個實例:
@Service
public class MyService {
[...]
@Bean
@Scope("singleton")
public MyOtherBean myOtherBean() { // singleton factory method
return [...];
}
}
但@Bean
應該只@Configuration
-beans使用。在@Service
bean內部,您可以注入所需的bean(@Autowired
)。
Spring singleton!= Java單身人士 –
顯示你做了什麼。包括Spring配置文件(如果使用XML配置)或Java配置。 –