Spring 註解

Spring 提供了方法來更有效的管理創建物件,使得我們不一定要從程式中去建立物件,配置物件,只需藉由Spring Xml 中 bean 的設定即可達到對物件的管理與配置,如此也使我們的物件可以更有效的被管理

以上就是透過在xml中加入bean的方式將 class 註冊於Spring中,如此我們就可於xml去管理這個物件,這也就是Spring的核心思想( Ioc ) ,而從Spring 2.0 開始更提供了另一個方法[ 註解 ]去簡化Spring xml 的設定,註解基於Spring 就等同於bean,而 @Service ,@Controller ,@Repository, @Component 就是可以註解在 class 上的四大類 ,目前來說此四類在Spring 中都是可被註冊為Bean的,

@Component  :  是一個泛型的註解 ,可以被轉換為其他3個類型

@Service : 對應於服務層的註解

@Repository : 對應於數據訪問層(Dao)

@Controller : 對應於控制層 ( mvc 中 action 的應用 )

接著只要我們在 Spring 的 xml 中加入

去啟動自動掃描 ,所以有加入註釋的 class 就會自動被註冊為 Spring <bean>

如此一來我們的 xml 也就簡化了許多,而註解於bean中的默認名稱為 class名稱(第一個字母小寫)

這個例子來說 bean 的名稱就是 myService 如果想自已定義 bean 的名稱可用@service(“name”)

如此一來bean的名稱就為 helloWorld,這總方式產生的bean預設 是singleton(單一的),意思就是說容器只會產生這個bean一次,以下列例子來說

以上述例子來說結果就會是

wang

wang

因為 user 只會被創建一次,所以 userB 一樣是使用之前被創建的 user,所以取出來的值會是一樣的,但如果我們加入@Scope(“prototype”)

結果就會是

wang

yang

因為 prototype就是每次取得Bean時,容器會建立一個新的Bean,而不是傳回同一個Bean,所以userB會在創建一個 user 此時 userB 取出來的值就會是 user 的預設值 yang。

總結 : 註解是Spring提供的另一個方式去配置class於容器中,而不需設定在xml中,妥善的使用註解也可使我們的應用程式更為簡潔,當然Spring還提供其他的註解,此篇介紹的是屬於使用於class上面的四類註解,接下來我也將繼續探討其他的註解

Facebook Comments