使用代碼向一個普通的類注入Spring的實例


轉載請在頁首注明作者與原文地址

一:應用場景

什么是普通的類,就是沒有@Controller,@Service,@Repository,@Component等注解修飾的類,同時xml文件中,也沒有相應的配置。

適用場景,當我們要開發自己的框架的時候,就可能會用到這種技術手段。常規的開發是用不到的。

當這個對象必須由我們創建的時候,但是又需要用到一些spring容器里面的對象,這個時候就可以適用當前場景了。

 

 

二:代碼

2.1:一個普通的類

我們准備一個普通的類

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

public class HeHe {

    @Autowired
    private ShortMessageDao dao;
    
    public void go(){
        System.out.println(dao.toString());
    }
}

可以看到,它就是一個普通的類,沒有任何的聲明成為bean的注解。

當然,在實際開發框架的過程中,我們肯定需要需要開發一個方式,讓客戶去聲明這樣的一個類,可以用配置文件,但是主流都是注解,比如說我們自定義一個注解放到該類上面,

然后程序啟動的時候掃描擁有這個注解的類,然后我們自動為其創建對象,等等。當然這些不在本文章的講解內容之中。

 

 

2.2:開始注入

代碼很簡單

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class TestApplication {

    @Autowired
    private AutowireCapableBeanFactory capableBeanFactory;
    
    @Test
    public void  test(){
        HeHe hehe = new HeHe();
        capableBeanFactory.autowireBean(hehe);
        hehe.go();
    }
}

這里是寫了一個test類去注入,實際開發框架的過程中,我們肯定是在項目啟動的時候,就把這個類注入進去了。比如使用@Configuration注解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM