Spring自動掃描裝配bean
阿新 • • 發佈:2019-02-13
常用的配置bean的方式就是在xml配置檔案中,給它一個id,然後類的全路徑,就像下面這樣。
程式碼1
<bean id="Subs" class="com.test.Subs"/>
呼叫的程式碼:
程式碼2
ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring.xml");
Subs sub = (Subs) context.getBean("Subs");
sub.XX();
常用的方法就是通過上下文獲取bean,然後直接呼叫bean的方法。如果工程比較大,有成百上千個bean,在spring.xml檔案中配置和維護非常麻煩。能不能有辦法對類進行標註,spring容器能根據標註自動識別哪些java類是bean。spring為我們提供了這樣的便利。
程式碼3
<context:component-scan base-package="com.test"/>
然後在類上提供標註:
程式碼4
@Component
public class Subs {
public void XX() {}
}
通過以上配置,spring容器會去掃描包路徑下的所有java類,識別出有@Component註解的類,將其裝配成bean。通過程式碼2同樣可以實現呼叫。如果我們不想用類名作為bean的名稱,同樣可以通過註解實現。
程式碼5
@Component("SubsAlias") public class Subs { public void XX() {} }
目前Spring支援的自動掃描的註解有以下四類:
- @Component
- @Service
- @Controller
- @Repository