spring利用掃描方式對bean的處理(對任何版本如何擷取xml配置資訊的處理)

來源:互聯網
上載者:User

利用掃描的方式將組件注入容器,就也可以不用操作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

}

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.