Spring提供處理注入更長壽命的一個較短的壽命豆的機制。它被稱爲作用域代理。它的工作原理是單例注入一個代理,該代理將通過搜索較短的作用域(如會話或請求)來處理方法調用,並將其委託給該實例。
你沒有指定,如果您使用的XML或註釋來配置你的應用程序,或者你使用的是什麼版本的春天。您可以閱讀更多關於使用xml在reference guide中配置範圍代理的信息。我將給你一個例子,說明如何在Spring 4-ish環境中使用註釋對其進行配置。
對我來說,最好的辦法是使用元註釋機制。它允許您創建自己的註釋,以供Spring稍後用於配置您的應用程序。例如:
@Retention(RUNTIME)
@Scope(value=WebApplicationContext.SCOPE_SESSION, proxyMode=ScopedProxyMode.TARGET_CLASS)
public @interface SessionScoped{
}
這樣的註釋,當在@Component(或@Service或任何其它專門化)類或在Java配置一個@Bean方法中指定將導致豆被注入作爲代理。例如:
@Configuration
@EnableAspectJAutoProxy
public class MyConfig{
@SessionScoped
@Bean
public MyClass myBean(){
// return your bean
}
}
之所以這麼說,你的例子真的讓我覺得你應該與實體(汽車)和存儲庫來工作。見Spring Data如果你正在設計的模型層,並要在數據庫中存儲等汽車數據
您的汽車類不應該出現在這樣的情況下,一個bean。它應該可能是一個實體。查看JPA/Spring數據。 – Apokralipsa