利用掃描的方式將組件注入容器,就也可以不用操作bean來執行個體化對象了。
下面我做一個例子
我用的spring3.2.2版本的
首先寫一個spring.xml。
<?xml
version="1.0"encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan
base-package="com.fish"/>//這裡寫包名。意思說只要在這個包裡的bean都被我執行個體化了。
</beans>
其實這篇代碼不難,但是對於新手學習還是有點難度的。因為spring的版本不一樣。所以配置資訊的內容會改變。如何擷取自己版本對應的配置資訊呢?首先明白所有架構你在從官網下載下來一般都有這3部分,第一lib檔案存放所有jar包,第二個就是doc就是說明書,第三個就是例子。
你只要知道自己版本的說明書現在官網的都以網頁形式給出。比如說我現在學習的是IOC
的bean處理。那麼我到找關於bean處理的網頁,在瀏覽器裡面尋找,<xmlns:context一般就能找到了你要的模板例子了。這個複製粘貼到你的xml那絕對是100%正確的。什麼版本都不用怕。
接著我寫一個person.java類
package com.fish;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
@Service //類前面加個註解。而這檔案本來就在com.fish包下,這樣spring容器就知道你要執行個體化了
public class Person {
public String getName(){
return name;
}
public voidsetName(String name) {
this.name = name;
}
public void show(){
System.out.println("aa");
}
}
下面我在寫一個測試類別吧
package com.fish;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static voidmain(String[] args) {
ApplicationContext context =
newClassPathXmlApplicationContext("spring.xml");//將spring啟用,
Person person=(Person)context.getBean("person");//本來是靠bean來建立對象的,現在XML檔案早就沒有了。所以這個bean的名字。就是你要初始化的類名的小寫開頭。
person.show();//我們可以看到輸出aa
}
}