国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot依賴注入的三種方式

這篇具有很好參考價值的文章主要介紹了springboot依賴注入的三種方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

springboot依賴注入的三種方式

1.使用 XML 配置依賴注入

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

以下是一個簡單的示例:

  1. src/main/resources目錄下創(chuàng)建applicationContext.xml文件。

  2. 在該文件中定義一個 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>
    
  3. 在 TestBean 類中聲明一個 name 屬性和一個 UserService 的依賴:

    public class TestBean {
        private String name;
        private UserService userService;
        //setter和getter方法省略
    }
    
  4. 在啟動類中調用 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 配置類實現(xiàn)依賴注入

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

以下是一個簡單的示例:

  1. 創(chuàng)建一個配置類,并使用@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();
        }
    }
    
  2. 定義 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;
        }
    }
    
  3. 定義 UserService 接口和它的實現(xiàn)類 UserServiceImpl:

    public interface UserService {
        void addUser();
    }
    
    public class UserServiceImpl implements UserService {
        @Override
        public void addUser() {
            System.out.println("Add user success");
        }
    }
    
  4. 在啟動類中使用 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 實現(xiàn)依賴注入的過程。需要注意的是,JavaConfig 等價于 XML 配置文件,但是 JavaConfig 更加的面向對象,更加靈活,更加易于維護。

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

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

以下是一個簡單的示例:

  1. 定義一個 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();
        }
    }
    
  2. 定義 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;
        }
    }
    
  3. 在啟動類中使用 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());
        }
    }
    
  4. 運行啟動類,可以看到控制臺輸出:

    小明
    

這樣就完成了使用注解進行依賴注入的過程。需要注意的是,使用注解可以使代碼更加簡潔、易于閱讀和維護,但是需要注意注解的使用和作用范圍。文章來源地址http://www.zghlxwxcb.cn/news/detail-422527.html

到了這里,關于springboot依賴注入的三種方式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Spring 框架入門介紹及IoC的三種注入方式

    Spring 框架入門介紹及IoC的三種注入方式

    目錄 一、Spring 簡介 1. 簡介 2. spring 的核心模塊 ? ?二、IoC 的概念 2.1 IoC 詳解 2.2 IoC的好處 2.3 談談你對IoC的理解 三、IoC的三種注入方式 3.1 構造方法注入 3.2?setter方法注入 3.3 接口注入(自動分配) 3.4 spring上下文與tomcat整合 3.5 總結 ????????Spring框架 是?Java?平臺的一個

    2024年02月12日
    瀏覽(32)
  • 【SpringBoot】獲取HttpServletRequest的三種方式

    線程安全 缺點: 每個方法都需要寫一遍 線程安全 在 Spring 中, DemoRequestController 的 scope 是 singleton (單例),也就是說在整個 web 系統(tǒng)中,只有一個 DemoRequestController ;但是其中注入的 request 卻是線程安全的,原因在于:使用這種方式,當 Bean (本例的 DemoRequestController )初始化

    2024年02月12日
    瀏覽(20)
  • SpringBoot實現(xiàn)分頁的三種方式

    一 自己封裝Page對象實現(xiàn) 博客鏈接 二 使用sql實現(xiàn)分頁 2.1 場景分析 前段傳遞給給后臺什么參數? 當前頁碼 currentPage 每頁顯示條數 pageSize 后臺給前端返回什么數據? 當前頁數據 List 總記錄數 totalCount 2.2 前段代碼 2.3 后端代碼 PageBean mapper service impl controller 三 使用PageHelper插件

    2024年02月10日
    瀏覽(28)
  • 【SpringBoot18】SpringBoot 調用外部接口的三種方式

    【SpringBoot18】SpringBoot 調用外部接口的三種方式

    SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發(fā)過程。在Spring-Boot項目開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口,或外部url鏈接的需求, 比如在apaas開發(fā)過程中需要封裝接口在接口中調用apaas提供的接口(

    2023年04月11日
    瀏覽(34)
  • SpringBoot導出Word文檔的三種方式

    SpringBoot導出Word文檔的三種方式

    1、直接在Java代碼里創(chuàng)建Word文檔,設置格式樣式等,然后導出。(略) 需要的見:https://blog.csdn.net/qq_42682745/article/details/120867432 2、富文本轉換后的HTML下載為Word文檔。相當于把HTML轉為Word導出 3、使用模板技術導出。固定格式、可以寫入不同數據 其他: springboot版本:2.7.11 導

    2024年02月02日
    瀏覽(21)
  • Springboot中使用線程池的三種方式

    前言 多線程是每個程序員的噩夢,用得好可以提升效率很爽,用得不好就是埋汰的火葬場。 這里不深入介紹,主要是講解一些標準用法,熟讀唐詩三百首,不會作詩也會吟。 這里就介紹一下springboot中的多線程的使用,使用線程連接池去異步執(zhí)行業(yè)務方法。 由于代碼中包含詳

    2024年02月08日
    瀏覽(24)
  • SpringBoot獲取Request請求的三種方式

    Request對象包含了請求的各種信息,比如請求方法、請求URL、請求參數、請求內容等等,這些信息可以供服務器進行處理和響應。那么在SpringBoot中,怎么才能獲取到Request對象? 本文將介紹三種方法,并提示例參考。 一、直接在Controller方法參數上注入HttpServletRequest 這是最常用

    2024年02月04日
    瀏覽(24)
  • SpringBoot獲取HttpServletRequest、HttpServletResponse的三種方式

    SpringBoot獲取HttpServletRequest、HttpServletResponse的三種方式

    僅僅適用在controller方法上。當Spring接收到HTTP請求時,會尋找一個合適的方法來處理該請求。如果該方法參數上標注了@RequestMapping或@Get、@Post等注解,Spring就會將HttpServletRequest對象注入到該參數中。 適用于所有的bean 通過調試可以看到,注入的Reques是一個代理類,而這個被代

    2024年02月19日
    瀏覽(25)
  • SpringBoot+MyBatis批量插入數據的三種方式

    最近導入表格數據時需要同時插入修改大量數據,研究了一下有三種實現(xiàn)方式 1、用for循環(huán)調用sql插入數據 這種方式插入大量數據時,效率非常底下,不推薦 2、利用mybatis的foreach來實現(xiàn)循環(huán)插入 這種方式插入大量數據時,好處是不用頻繁訪問數據庫,一條sql搞定,效率比較

    2024年02月16日
    瀏覽(19)
  • SpringBoot實現(xiàn)過濾器Filter的三種方式

    SpringBoot實現(xiàn)過濾器Filter的三種方式

    過濾器 Filter 由 Servlet 提供,基于函數回調實現(xiàn)鏈式對網絡請求與響應的攔截與修改。由于基于 Servlet ,其可以對web服務器管理的幾乎所有資源進行攔截(JSP、圖片文件、HTML 文件、CSS文件等)。 Filter 的生命周期 init(): 初始化Filter 實例,F(xiàn)ilter 的生命周期與 Servlet 是相同的,

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包