欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring常用注解及自定義Filter的實(shí)現(xiàn)

 更新時(shí)間:2019年08月16日 09:43:41   作者:碼莎拉蒂  
這篇文章主要介紹了Spring常用注解及自定義Filter的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

@Configuration通常用在配置類上,告訴spring這是一個(gè)配置類(配置類類似配置文件,區(qū)別在于用類的形式來表現(xiàn)xml;

@Service用于標(biāo)注業(yè)務(wù)層組件service層,

@Controller用于標(biāo)注控制層組件(如struts中的action) ,

@Repository用于標(biāo)注數(shù)據(jù)訪問組件,即DAO組件,

@component把普通pojo實(shí)例化到spring容器中,相當(dāng)于配置文件中的 <bean id="" class=""/>

使用@Configuration會(huì)掃描以上四種注解聲明的類。

@Bean在配置類中使用時(shí),表示這是一個(gè)JavaBean。

例如:

//配置類 == 配置文件
@ComponentScan(value = "com.spring") // 告訴spring這個(gè)是一個(gè)配置類
})
public class MainConfig {
 
 // 注冊(cè)一個(gè)bean,類型為返回值的類型,id默認(rèn)用方法名
 @Bean
 public Person person1() {
 return new Person("張三", 20);
 }
 
  //可以為bean定義id
 @Bean("student")
 public Person person2() {
 return new Person("韓梅梅", 12);
 }
 
}

@ComponentSan value:指定要掃描的包
    excludeFilters = Filter[] :指定掃描的時(shí)候按照什么規(guī)則排除哪些組件
    includeFilters = Filter[] :指定掃描的時(shí)候只需要包含哪些組件
        FilterType.ANNOTATION:注解類型
        FilterType.ASSIGNABLE_TYPE:按照指定的類型,如指定BookService,會(huì)查找BookService本身,及其子類
        FilterType.ASPECTJ:使用ASPECTJ表達(dá)式,不經(jīng)常使用
        FilterType.REGEX:使用正則表達(dá)式
        FilterType.CUSTOM:使用自定義表達(dá)式

@ComponentScan排除掃描類型

@ComponentScan(value = "com.spring", excludeFilters = {//排除指定的掃描類型
 //過濾注解類型  @Controller @Repository
 @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) 
})

@ComponentScan掃描指定類型

@ComponentScan(value = "com.spring", includeFilters = {//指定的掃描類型
 //過濾注解類型  @Controller @Repository
 @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) 
},useDefaultFilters = false)//注意,使用掃描指定類型時(shí),需要配置useDefaultFilters = false 禁用默認(rèn)規(guī)則

@ComponentScans可以理解為@ComponentScan數(shù)組,可以配置多個(gè)@ComponentScan

@ComponentScans(value= {
 @ComponentScan(value = "com.spring", includeFilters = {//指定的掃描類型
  //過濾注解類型  @Controller @Repository
  @Filter(type = FilterType.ANNOTATION, classes = { Controller.class,Repository.class }) ,
                //指定類型
  @Filter(type = FilterType.ASSIGNABLE_TYPE,classes = (BookService.class)),
                //自定義
  @Filter(type = FilterType.CUSTOM,classes = (MyTypeFilter.class))
 },useDefaultFilters = false)//注意,使用掃描指定類型時(shí),需要配置useDefaultFilters = false 禁用默認(rèn)規(guī)則
})

自定義包含規(guī)則

public class MyTypeFilter implements TypeFilter {
 
 /**
  * 返回true匹配成功,返回false匹配失敗 
 * metadataReader 讀取到的當(dāng)前正在掃描的類的信息
 * metadataReaderFactory 可以獲取到其他任何類的信息
 */
 public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
  throws IOException {
 //獲取當(dāng)前類注解的信息
 AnnotationMetadata nnnotationmetadata = metadataReader.getAnnotationMetadata();
 //獲取當(dāng)前正在掃描的類的類信息
 ClassMetadata classMetadata = metadataReader.getClassMetadata();
 //獲取當(dāng)前類的資源信息(類的路徑)
 Resource resource = metadataReader.getResource();
 
 String className = classMetadata.getClassName();
 System.out.println(">>>>"+className);
 if(className.contains("er")) {
  return true;
 }
 return false;
 }
 
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中propagation的7種事務(wù)配置及說明

    Spring中propagation的7種事務(wù)配置及說明

    這篇文章主要介紹了Spring中propagation的7種事務(wù)配置及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringMVC高級(jí)開發(fā)功能實(shí)現(xiàn)過程解析

    SpringMVC高級(jí)開發(fā)功能實(shí)現(xiàn)過程解析

    這篇文章主要介紹了SpringMVC高級(jí)開發(fā)功能實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Nacos源碼閱讀方法

    Nacos源碼閱讀方法

    這篇文章將會(huì)帶大家閱讀Nacos源碼以及教大家閱讀源碼的技巧,感興趣的朋友跟隨小編一起看看Nacos源碼閱讀方法
    2022-03-03
  • Java執(zhí)行Linux命令簡(jiǎn)單代碼舉例

    Java執(zhí)行Linux命令簡(jiǎn)單代碼舉例

    這篇文章主要給大家介紹了關(guān)于Java執(zhí)行Linux命令的相關(guān)資料,在開發(fā)的過程中要善于利用JAVA面向?qū)ο缶幊痰膬?yōu)勢(shì),與Linux/Unix命令或Shell腳本的優(yōu)勢(shì),并將二者相結(jié)合,需要的朋友可以參考下
    2023-12-12
  • MyBatis插件機(jī)制超詳細(xì)講解

    MyBatis插件機(jī)制超詳細(xì)講解

    MyBatis在四大對(duì)象的創(chuàng)建過程中,都會(huì)有插件進(jìn)行介入。插件可以利用動(dòng)態(tài)代理機(jī)制一層層的包裝目標(biāo)對(duì)象,而實(shí)現(xiàn)在目標(biāo)對(duì)象執(zhí)行目標(biāo)方法之前進(jìn)行攔截的效果
    2022-11-11
  • 用SpringMVC編寫一個(gè)HelloWorld的詳細(xì)過程

    用SpringMVC編寫一個(gè)HelloWorld的詳細(xì)過程

    SpringMVC是Spring的一個(gè)后續(xù)產(chǎn)品,是Spring的一個(gè)子項(xiàng)目<BR>SpringMVC?是?Spring?為表述層開發(fā)提供的一整套完備的解決方案,本文我們將用SpringMVC編寫一個(gè)HelloWorld,文中有詳細(xì)的編寫過程,需要的朋友可以參考下
    2023-08-08
  • mybatis快速入門學(xué)習(xí)教程新手注意問題小結(jié)

    mybatis快速入門學(xué)習(xí)教程新手注意問題小結(jié)

    MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的持久層框架。接下來通過本文給大家介紹mybatis快速入門學(xué)習(xí)教程新手注意問題小結(jié),需要的朋友可以參考下
    2017-02-02
  • Java基于NIO實(shí)現(xiàn)群聊功能

    Java基于NIO實(shí)現(xiàn)群聊功能

    這篇文章主要為大家詳細(xì)介紹了Java基于NIO實(shí)現(xiàn)群聊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • LambdaQueryWrapper與QueryWrapper的使用方式

    LambdaQueryWrapper與QueryWrapper的使用方式

    這篇文章主要介紹了LambdaQueryWrapper與QueryWrapper的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot集成支付寶沙箱支付(支付、退款)

    SpringBoot集成支付寶沙箱支付(支付、退款)

    這篇文章主要為大家詳細(xì)介紹了SpringBoot集成支付寶沙箱支付,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論