SpringBoot配置文件導(dǎo)入方法詳細(xì)講解
導(dǎo)入傳統(tǒng)xml配置
默認(rèn)情況下,Spring Boot 中是不包含任何的 Spring 配置文件的,即使我們手動添加 Spring 配置文件到項目中,也不會被識別。
Spring Boot提倡基于Java的配置。盡管你可以使用XML源,不過還是建議你使用@Configuration類作為主要配置源。通常定義了main方法的類也是使用@Configuration注解的一個很好的替補。
使用@ImportResource注解加載Spring配置文件
在主啟動類上使用 @ImportResource 注解可以導(dǎo)入一個或多個 Spring 配置文件,并使其中的內(nèi)容生效。
在resources下創(chuàng)建beans.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">
</beans>創(chuàng)建業(yè)務(wù)測試類
接口OrderService
public interface OrderService {
public void test();
}實現(xiàn)類OrderServiceImpl
public class OrderServiceImpl implements OrderService{
@Override
public void test() {
System.out.println("xml配置獲取類的實例");
}
}在beans.xml中增加配置
<bean id="orderService" class="com.moming.service.impl.OrderServiceImpl"></bean>
引入xml文件
@SpringBootApplication
@ImportResource(value = "classpath:beans.xml")
public class App{
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}注入OrderService
@RestController
public class OrderController {
@Autowired
private OrderService orderService;
@RequestMapping("/test")
public void test(){
orderService.test();
}
}測試

@import導(dǎo)入其它配置類
無需將所有內(nèi)容都@Configuration放在一個類中。@Import注釋可以用于導(dǎo)入額外的配置類。另外,可以@ComponentScan用來自動拾取所有Spring組件,包括@Configuration類。
創(chuàng)建不同包下的配置類
package cn.moming;
public class B {
public void test(){
System.out.println("我是外包的B類");
}
}package cn.moming;
public class C {
public void test(){
System.out.println("我是外包的C類");
}
}主類引入不同包下的配置類
如果配置類跟主類在同一包及其子包下,無需引入,在不同包下通過@Import引入既可
@SpringBootApplication
//@ImportResource(value = "classpath:beans.xml")
@Import({B.class,C.class})
public class App{
public static void main(String[] args) {
//SpringApplication.run(App.class, args);
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
B bean1 = context.getBean(B.class);
C bean2 = context.getBean(C.class);
bean1.test();
bean2.test();
}
}
同一包及其子包下,使用 @Configuration 注解定義配置類
package com.moming.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class A {
public void test(){
System.out.println("我是同包/子包的A類");
}
}@SpringBootApplication
//@ImportResource(value = "classpath:beans.xml")
//@Import({B.class,C.class})
public class App{
public static void main(String[] args) {
//SpringApplication.run(App.class, args);
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
A bean = context.getBean(A.class);
bean.test();
}
}
@Configuration全注解方式加載Spring配置
Spring Boot 推薦我們使用全注解的方式加載 Spring 配置,其實現(xiàn)方式如下:
- 使用 @Configuration 注解定義配置類,替換 Spring 的配置文件;
- 配置類內(nèi)部可以包含有一個或多個被 @Bean 注解的方法,這些方法會被 AnnotationConfigApplicationContext 或 AnnotationConfigWebApplicationContext 類掃描,構(gòu)建 bean 定義(相當(dāng)于 Spring 配置文件中的<bean></bean>標(biāo)簽),方法的返回值會以組件的形式添加到容器中,組件的 id/name 就是方法名。
到此這篇關(guān)于SpringBoot配置文件導(dǎo)入方法詳細(xì)講解的文章就介紹到這了,更多相關(guān)SpringBoot配置文件導(dǎo)入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)自定義時鐘并實現(xiàn)走時功能
這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)自定義時鐘并實現(xiàn)走時功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
詳解SpringBoot中JdbcTemplate的事務(wù)控制
JdbcTemplate是spring-jdbc提供的數(shù)據(jù)庫核心操作類,那對JdbcTemplate進(jìn)行事務(wù)控制呢,本文就詳細(xì)的介紹一下2021-09-09
深入理解Java8新特性之新日期時間API的應(yīng)用
自從 14 年發(fā)布 Java 8 以后,我們古老 java.util.Date 終于不再是我們 Java 里操作日期時間的唯一的選擇,其實 Java 里的日期時間的相關(guān) API 一直為世猿詬病,今天我們來了解新的日期時間API是怎么使用吧2021-11-11
阿里dubbo出錯提示Thread pool is EXHAUSTED問題及解決方法
這篇文章主要介紹了阿里dubbo出錯提示Thread pool is EXHAUSTED的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
mybatis抽取基類BaseMapper增刪改查的實現(xiàn)
目前項目當(dāng)中使用mapper.xml文件方式對數(shù)據(jù)庫進(jìn)行操作,但是每個里邊都有增/刪/改/查,為了方便開發(fā),把這些公共的代碼提取出來,不用當(dāng)做基類,不用每個Mapper文件都寫了,本文就詳細(xì)的介紹一下實現(xiàn)方法2021-09-09
Spring Data JPA的Audit功能審計數(shù)據(jù)庫的變更
數(shù)據(jù)庫審計是指當(dāng)數(shù)據(jù)庫有記錄變更時,可以記錄數(shù)據(jù)庫的變更時間和變更人等,這樣以后出問題回溯問責(zé)也比較方便,本文討論Spring Data JPA審計數(shù)據(jù)庫變更問題,感興趣的朋友一起看看吧2021-06-06
java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實例
下面小編就為大家?guī)硪黄猨ava 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12

