轉載請在頁首注明作者與原文地址
一:應用場景
什么是普通的類,就是沒有@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注解
