溫馨提示×

溫馨提示×

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

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

SpringBoot項目怎么將Bean注入到普通類中

發布時間:2021-11-16 09:06:33 來源:億速云 閱讀:822 作者:iii 欄目:開發技術

這篇文章主要講解了“SpringBoot項目怎么將Bean注入到普通類中”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringBoot項目怎么將Bean注入到普通類中”吧!

    如何將Bean注入到普通類中

    Spring管理的類獲得一個注入的Bean方式

    @Autowired是一種注解,可以對成員變量、方法和構造函數進行標注,來完成自動裝配的工作,自動執行當前方法,如果方法有參數,會在IOC容器中自動尋找同類型參數為其傳值。

    如Controller中注入Bean可以這么寫:

    @RestController
    public class TestController {
     @Autowired
     public TestBean bean;// 配置文件bean
    }

    非Spring管理的類獲得一個注入的Bean方式

    上述通過@Autowired注解注入的方式只可以用在Spring管理的類中,而普通類中通過這樣的方式獲得的Bean為null。

    可以使用Spring上下文ApplicationContext獲得Bean的方式,將Bean注入到普通類中

    普通類中通過ApplicationContext上下文獲得Bean
    public class Test{
     //聲明要注入的Bean變量
     private static TestBean bean;
     // 通過applicationContext上下文獲取Bean
     
     public static void setApplicationContext(ApplicationContext applicationContext) {
      bean = applicationContext.getBean(TestBean.class);
     }
    }

    修改SpringBoot啟動類

    將ApplicationContext傳入普通類中
    @SpringBootApplication
    public class TestrApplication {
     public static void main(String[] args) {
      final ApplicationContext applicationContext = SpringApplication.run(TestApplication.class, args);
      // 將上下文傳入Test類中,用于檢測tcp連接是否正常
      Test.setApplicationContext(applicationContext);
     }
    }

    這樣一個Spring的Bean就可以注入到普通類中使用了.

    在普通類中如何獲取Bean節點

    /*
     * 文件名:SpringContextUtil.java
     * 描述:獲取bean實例工具類
     * 修改人:Wang Chinda
     * 修改時間:2018/10/30
     * 修改內容:新增
     */
    package com.chinda.utils;
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    /**
     * 獲取bean實例工具類
     * @author Wang Chinda
     * @date 2018/10/30
     * @see
     * @since 1.0
     */
    @Component
    public class SpringContextUtil implements ApplicationContextAware {
        /**
         * 上下文對象實例
         */
        private static ApplicationContext applicationContext;
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.applicationContext = applicationContext;
        }
        /**
         * 獲取applicationContext
         *
         * @return
         */
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
        /**
         * 通過name獲取Bean.
         *
         * @param name
         * @return
         */
        public static Object getBean(String name) {
            return getApplicationContext().getBean(name);
        }
        /**
         * 通過class獲取Bean.
         *
         * @param clazz
         * @param <T>
         * @return
         */
        public static <T> T getBean(Class<T> clazz) {
            return getApplicationContext().getBean(clazz);
        }
        /**
         * 通過name以及Class返回指定的Bean
         *
         * @param name
         * @param clazz
         * @param <T>
         * @return
         */
        public static <T> T getBean(String name, Class<T> clazz) {
            return getApplicationContext().getBean(name, clazz);
        }
    }

    感謝各位的閱讀,以上就是“SpringBoot項目怎么將Bean注入到普通類中”的內容了,經過本文的學習后,相信大家對SpringBoot項目怎么將Bean注入到普通類中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

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

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女