中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot依賴注入的三種方式是什么

發布時間:2023-04-18 10:52:12 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“SpringBoot依賴注入的三種方式是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“SpringBoot依賴注入的三種方式是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

SpringBoot依賴注入的三種方式

1.使用 XML 配置依賴注入

在 Spring Boot 中,使用 XML 配置依賴注入(DI)時,需要使用<bean>元素來定義 bean,并使用<property>元素來為 bean 的屬性注入值或依賴對象。

以下是一個簡單的示例:

  • 在src/main/resources目錄下創建applicationContext.xml文件。

  • 在該文件中定義一個 testBean bean,并注入一個 String 類型的屬性name和一個 UserService 類型的依賴對象。

<?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="testBean" class="com.example.demo.TestBean">
       <property name="name" value="小明"/>
       <property name="userService" ref="userService"/>
   </bean>

   <bean id="userService" class="com.example.demo.UserService"/>

</beans>
  • 在 TestBean 類中聲明一個 name 屬性和一個 UserService 的依賴:

public class TestBean {
    private String name;
    private UserService userService;
    //setter和getter方法省略
}
  • 在啟動類中調用 ApplicationContext 的構造函數并傳入 applicationContext.xml 文件的路徑,然后通過 getBean 方法獲取 TestBean 實例,并訪問它的屬性和方法:

public class DemoApplication {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        TestBean testBean = (TestBean)context.getBean("testBean");
        String name = testBean.getName();
        UserService userService = testBean.getUserService();
        //使用testBean和userService進行其他操作
    }
}

這樣就完成了 Spring Boot 中使用 XML 配置依賴注入的過程。需要注意的是,在 Spring Boot 中,官方推薦使用 JavaConfig(基于 Java 類的配置方式)或注解(Annotation)來進行依賴注入,因為它們更加方便和易于維護。

2.使用 Java 配置類實現依賴注入

使用 Java Config 實現依賴注入可以通過@Configuration和@Bean注解來實現。

以下是一個簡單的示例:

  • 創建一個配置類,并使用@Configuration注解標記,定義兩個 Bean:

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

@Configuration
public class AppConfig {
    @Bean
    public TestBean testBean() {
        return new TestBean("小明");
    }

    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }
}
  • 定義 TestBean 類,并在該類中聲明一個 name 屬性:

public class TestBean {
    private String name;

    public TestBean(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  • 定義 UserService 接口和它的實現類 UserServiceImpl:

public interface UserService {
    void addUser();
}

public class UserServiceImpl implements UserService {
    @Override
    public void addUser() {
        System.out.println("Add user success");
    }
}
  • 在啟動類中使用 AnnotationConfigApplicationContext 獲取配置類對象,然后使用 getBean() 方法獲取 TestBean 和 UserService 實例:

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class DemoApplication {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        TestBean testBean = context.getBean(TestBean.class);
        String name = testBean.getName();
        UserService userService = context.getBean(UserService.class);
        userService.addUser();
    }
}

這樣就完成了使用 JavaConfig 實現依賴注入的過程。需要注意的是,JavaConfig 等價于 XML 配置文件,但是 JavaConfig 更加的面向對象,更加靈活,更加易于維護。

3.使用注解來進行依賴注入

可以使用注解來進行依賴注入,常用的注解有@Autowired和@Qualifier。

以下是一個簡單的示例:

  • 定義一個 Service 類,使用@Autowired注解注入TestBean:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class Service {
    @Autowired
    private TestBean testBean;

    public String getName() {
        return testBean.getName();
    }
}
  • 定義 TestBean 類,測試注入是否成功:

import org.springframework.stereotype.Component;

@Component
public class TestBean {
    private String name = "小明";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  • 在啟動類中使用 AnnotationConfigApplicationContext 獲取配置類對象,然后使用 getBean() 方法獲取 Service 實例:

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class DemoApplication {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        Service service = context.getBean(Service.class);
        System.out.println(service.getName());
    }
}

運行啟動類,可以看到控制臺輸出:

小明

這樣就完成了使用注解進行依賴注入的過程。需要注意的是,使用注解可以使代碼更加簡潔、易于閱讀和維護,但是需要注意注解的使用和作用范圍。

讀到這里,這篇“SpringBoot依賴注入的三種方式是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

六枝特区| 始兴县| 潍坊市| 隆安县| 罗江县| 卓尼县| 元氏县| 吉木乃县| 黄梅县| 渝中区| 普兰县| 当阳市| 青田县| 绥化市| 南涧| 潼南县| 黎平县| 鹤岗市| 漳州市| 云阳县| 阿坝县| 晴隆县| 嘉义市| 达日县| 黄平县| 大渡口区| 合江县| 平南县| 木兰县| 抚宁县| 江安县| 济南市| 玉龙| 南京市| 晋江市| 林芝县| 北宁市| 昌黎县| 贵德县| 乐安县| 江达县|