spring註解---@ComponentScan註解 自動掃描

1 背景:在通過配置文件掃描bean到IOC容器的時候,需要的步驟。

           1.1 給相應的了加上@Controller @Repository @Service @Component註解

            1.2  在bean.xml文件中編寫<context:component-scan>標籤。這樣有註釋的類纔會被掃描到IOC容器中。

<context:component-scan base-package="com.componentscan"></context:component-scan>

2 通過註解的方式。 @ComponentScan註解

@ComponentScan(value="com.componentscan",
               excludeFilters= {
            		   @Filter(type=FilterType.ANNOTATION,classes= {Controller.class,Service.class})	
})
public class ConfigTest {
	@Bean(value="person01")
	public Person person111() {
		return new Person("haha", 100);
	}
}

     2.1 value : 指定需要掃描的包。

     2.2 excludeFilters :按照某些規則,排除某些資源。

                寫法:excludeFiltersincludeFilters裏面是通過@Filter註解來指定包含或者排除的規則。

                            type:FilterType 來指定排除或者包含資源的方式

                                       FilterType的介紹

                            classes:來指定要排除的類。

                解釋:例子中的意思是,按照註解的來排除資源,排除的資源是標註了@Controller和@Service的類不會被掃描到IOC中。

    2.3 includeFilters: 按照某些規則,包含某些資源。

@Configuration
@ComponentScan(value = "com.componentscan", useDefaultFilters = false,
               includeFilters = { 
		@Filter(type = FilterType.ANNOTATION, classes = {Controller.class, Service.class }) })

public class ConfigTest {
	@Bean(value = "person01")
	public Person person111() {
		return new Person("haha", 100);
	}
}

                 寫法:同excludeFilters寫法。

                 注意: 如果要使用includeFilters 的話,需要配合useDefaultFilters 參數,禁用後,自己設置的包含規則才能生效。

  2.4 useDefaultFilters :是否使用默認規則。通常和 includeFilters 參數配合使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章