SpringBoot入門系列篇(十二):使用XML配置Bean

前情提要

雖然SpringBoot的理念就是零配置編程,但是有時候也會出現絕對需要使用XML進行配置的情況,SpringBoot也同樣提供了手動加載XML配置中的bean的方法,下面就來簡單的介紹一下


在SpringBoot中簡單的使用XML配置Bean

首先新建兩個包,org.test1和org.test2,在org.test2包下創建一個Service,代碼如下:
package test2;

import org.springframework.stereotype.Service;

/**
 * 使用XML進行配置的Service
 * @author chengxi
 */
@Service
public class HelloService {

    public HelloService(){
        System.out.println("使用XML進行配置的Service");
    }
}
然後在org.test1包下創建啓動類,代碼如下:
package org.test1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;

/**
 * 啓動類測試
 * @author chengxi
 */
@SpringBootApplication
public class Main {

    @Autowired
    private HelloService helloService;

    public static void main(String[] args){

        SpringApplication.run(Main.class, args);
    }
}
這個時候我們可以看到,如果不進行任何配置,在啓動Main之後是無法訪問到Service的,我們可以採用前面所說的改變自動掃描的包,在這裏,我們使用XML進行配置,首先創建一個XML配置文件:
//classpath:personal.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--
        自定義配置bean
    -->
    <bean id="helloService" class="org.test2.HelloService">
    </bean>

</beans>
在創建了XML配置文件配置好了bean之後,此時還是無法訪問Service的,因爲SpringApplication不會自動掃描並解析XML,所以還需要創建一個配置類,代碼如下:
package org.test1;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

@Configuration

/**
 * ImportResource引入資源文件有三種方式:
 *     1.直接引入,該路徑就是src/resources/下面的文件:file
 *     2.classpath引入:該路徑就是src/java下面的配置文件:classpath:file
 *     3.引入本地文件:該路徑是一種絕對路徑:file:D://....
 */
@ImportResource(locations = {"personal.xml"})
public class ConfigClass {
}
這裏需要注意的是,上面的配置類一定要是啓動類能夠掃描的到的,否則就沒有用。現在run啓動類,將會在控制檯中輸出HelloService構造器中的內容,表示此時成功完成該Service的XML注入


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章