這篇文章主要講解了“SpringBoot項目怎么將Bean注入到普通類中”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringBoot項目怎么將Bean注入到普通類中”吧!
@Autowired是一種注解,可以對成員變量、方法和構造函數進行標注,來完成自動裝配的工作,自動執行當前方法,如果方法有參數,會在IOC容器中自動尋找同類型參數為其傳值。
如Controller中注入Bean可以這么寫:
@RestController public class TestController { @Autowired public TestBean bean;// 配置文件bean }
上述通過@Autowired注解注入的方式只可以用在Spring管理的類中,而普通類中通過這樣的方式獲得的Bean為null。
可以使用Spring上下文ApplicationContext獲得Bean的方式,將Bean注入到普通類中
public class Test{ //聲明要注入的Bean變量 private static TestBean bean; // 通過applicationContext上下文獲取Bean public static void setApplicationContext(ApplicationContext applicationContext) { bean = applicationContext.getBean(TestBean.class); } }
修改SpringBoot啟動類
@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就可以注入到普通類中使用了.
/* * 文件名: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注入到普通類中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。