SpringBoot中載入XML配置
阿新 • • 發佈:2020-09-02
開篇
在SpringBoot中我們通常都是基於註解來開發的,實話說其實這個功能比較雞肋,但是,SpringBoot中還是能做到的。所以用不用是一回事,會不會又是另外一回事。
濤鍋鍋在個人能力能掌握的範圍之內,一般是會得越多越好,都是細小的積累,發生質的改變,所以今天和小夥伴們一起分享一下。
實踐
1.首先我們新建一個SpringBoot Project ,工程名為 xml
2.新增web依賴,點選Finish完成構建
3.我們新建一個類 SayHello 不做任何配置
package org.taoguoguo; /** * @author powersi * @description SayHello * @website https://www.cnblogs.com/doondo * @create 2020-09-02 13:23 */ public class SayHello { public String sayHello(){ return "hello xml"; } }
4.然後在專案的resources目錄下,新建一個bean.xml,配置 Say Hello 的實體Bean
<?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 id="sayHello" class="org.taoguoguo.SayHello" /> </beans>
5.在工程中建立WebMvcConfig,並宣告為一個配置類,通過配置類載入 xml 配置檔案
package org.taoguoguo; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; /** * @author powersi * @description taoguoguo * @website https://www.cnblogs.com/doondo * @create 2020-09-02 13:25 */ @ImportResource(locations = "classpath:bean.xml") @Configuration public class WebMvcConfig { }
6.單元測試
package org.taoguoguo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class XmlApplicationTests {
@Autowired
SayHello sayHello;
@Test
void contextLoads() {
System.out.println(sayHello.sayHello());
}
}
執行測試方法 成功讀取到xml中的配置Bean
解讀
當我們實踐完以後我們看一下 ImportResource 這個註解,實質上裡面是一個BeanDefinitionReader的介面,而在Spring中這個介面的作用就是讀取xml
總結
另外@ImportResource 這個註解實質上是在包spring-context中的,所以即使專案不是SpringBoot也能使用,當我們使用Java純配置SSM時,同理可用
好了,今天的分享就到這,喜歡的朋友給個支援點個贊,也可通過關注或留言聯絡濤鍋鍋,原創不易,謝謝大家!