亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Spring Boot中單例類實現對象的注入方式是什么

發布時間:2021-08-02 13:48:19 來源:億速云 閱讀:208 作者:chen 欄目:開發技術

本篇內容介紹了“Spring Boot中單例類實現對象的注入方式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Spring Boot 單例類實現對象的注入

1、最近接手了一個項目

項目用的是SpringBoot,但其中有個類用的是單例,為了不改變單例,且還需要引入Spring管理的Bean對象

2、對于一個單例類按照平時的注解方式添加

啟動時會報空指針異常,因為static類對象是創建對象后,內存中還沒有注入Bean信息,且無法初始化Bean實例,這里的解決辦法是利用@PostConstruct來對單例類中對象的注入

@Component
public class MesssageHandle implements IMessageHandler {
   private final static Logger logger = LoggerFactory.getLogger(MesssageHandle.class);
   private static MesssageHandle instance = new MesssageHandle();
   @Autowired
   private ScheduleService scheduleService;
   private MesssageHandle(){ }
   public static MesssageHandle getInstance() {
      return instance;
   }
 
   @PostConstruct
   public void init(){
      instance = this;
      instance.scheduleService = this.scheduleService;
   }

spring boot的對象注入

1、需求

現在我們的項目中需要引入一個java類庫,我想要很方便的使用該類庫中的一個類,并且我想要創建這個類的一個單例對象。然后可以很方便的在各個模塊中用@AutoWired進行對象注入。

比如一個配置文件,我在一個地方創建Configuration對象,讀取配置文件中的配置,然后在各個模塊中使用該對象。

2、需求分析

這個需求涉及到兩個問題

一個是單例對象的創建;另外一個是單例對象的引用。因為,你要用一個對象,你首先得創建它。創建一個對象在Spring中有固定的模式,在定義類的時候使用@Component注解,@Component默認是單例的。這樣spring framework在進行component scan的時候就會創建這個對象。用的時候很簡單,只需要@Autowired就可以了。

@Autowired最好使用構造器注入,也就是說,不是直接將@Autowired放在成員變量上面,而是放在構建函數上面,然后通過構造函數的參數注入。為何要這么麻煩?

3、Spring boot是對spring使用的簡化

所以這整個的過程也是Spring boot所具備的能力。

4、以上分析的是自己創建的類對象注入

現在如果用這種對象注入來使用成熟的包中的對象呢?

4.1 使用配置文件生成bean

<bean class="xxx"></bean>

4.2 使用@Configuration注解生成bean

@Configuration
public class AppConfig {
    @Bean(name = "timedCache")
    public TimedCache<String, Muser> listStrBean() {
        return new TimedCache<String, Muser>(30 * 6000);
    } 
}

5 各個常用的注解

5.1 dao

@Repository

5.2 model

不需要注解

5.3 restful的controller

@RestController

5.4 service

service接口處不用,在接口的實現類處用@Service

6 關于@Autowired

要用到另外一個類的對象時,首先定義一個引用。

然后在本類的構造函數中給該引用賦值,然后將@Autowired來注解這個構造函數。

“Spring Boot中單例類實現對象的注入方式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

思南县| 恭城| 吴旗县| 年辖:市辖区| 恩平市| 壤塘县| 通化县| 老河口市| 黑山县| 福鼎市| 宿州市| 启东市| 绥化市| 赞皇县| 巨鹿县| 雷山县| 连城县| 三原县| 荔浦县| 阳原县| 铅山县| 白银市| 商河县| 夏河县| 庆元县| 罗平县| 东丽区| 常熟市| 社旗县| 尼玛县| 岳普湖县| 磐安县| 蒙自县| 新和县| 武川县| 西峡县| 宁南县| 黔西县| 佛山市| 始兴县| 昆山市|