1. 程式人生 > >Spring自動掃描裝配bean

Spring自動掃描裝配bean

常用的配置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