您的位置:首頁技術文章
文章詳情頁

java中成員變量productDao并沒有初始化,為什么可以調用方法?

瀏覽:133日期:2023-12-24 08:16:29

問題描述

java中成員變量productDao并沒有初始化,為什么可以調用方法?

java中成員變量productDao并沒有初始化,為什么可以調用方法?

java中成員變量productDao并沒有初始化,為什么可以調用方法?

問題解答

回答1:

Autowired修飾了該變量,Spring容器中獲取對應的Bean設置為該變量的值。

回答2:

你使用了 Spring 框架,又用 @Controller 注解由 Spring 管理該 ProductController,當 ProductController 實例化后會搜索 @Autowired 并注入被 Spring 管理的其他實例。

回答3:

productDao 上面使用 @Autowired 注解,意思就是從 Spring 上下文中自動注入實例.

Spring 上下文中類都是單例, 啟動后這些類都會在上下文中初始化好,所以你在 ProductController 中可以直接調用.

回答4:

這是被自動注入的,ProductDaoFacade應該被聲明為了一個bean。

ps:ProductDaoFacade這個代碼寫得真是太奇怪了,明明是個interface還facade(這是一個設計模式)。同時,還放了那么多常量,這是典型的constant interface。簡單來說,建議使用枚舉類。如果想深入了解一下,建議參考effective java中的建議之一————接口只用于定義類型。

回答5:

spring 在包掃描時 發現 @Controller 注解 將controller類進行了管理維護 在發現@Autowired后 啟動了裝配機制并根據改屬性類型在Spring 管理的Bean的上下文中進行了查找 進行了注入 專業名詞叫做IOC

回答6:

這個叫春的框架 幫你做了啊<_<

標簽: java
国产综合久久一区二区三区