zoukankan      html  css  js  c++  java
  • 041 Spring Boot中排除功能的处理

      这个问题,原本是没有注意,主要是理解的不够深刻。

    1.先看我的配置文件

     1 package com.springBoot.ioc.config;
     2 
     3 
     4 import com.springBoot.ioc.controller.StudentController;
     5 import org.springframework.context.annotation.ComponentScan;
     6 import org.springframework.context.annotation.Configuration;
     7 import org.springframework.context.annotation.FilterType;
     8 
     9 /**
    10  * @Desciption 配置文件
    11  */
    12 /*@Configuration
    13 public class MySpringBootConfig {
    14     @Bean(name="student")
    15     public Student getStu(){
    16         Student student=new Student();
    17         student.setId(1L);
    18         student.setUsername("Tom");
    19         student.setPassword("123456");
    20         return student;
    21     }
    22 }*/
    23 @Configuration
    24 @ComponentScan(basePackages="com.springBoot.ioc.*",excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = StudentController.class)})
    25 public class MySpringBootConfig{
    26 
    27 }

    2.然后运行程序,看报错信息

     1 9:51:13.797 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@67b92f0a: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.event.internalEventListenerProcessor,org.springframework.context.event.internalEventListenerFactory,mySpringBootConfig]; root of factory hierarchy
     2 Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.springBoot.ioc.config.MySpringBootConfig]; nested exception is java.lang.IllegalArgumentException: @ComponentScan ANNOTATION type filter requires an annotation type: class com.springBoot.ioc.controller.StudentController
     3     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184)
     4     at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316)
     5     at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233)
     6     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:271)
     7     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:91)
     8     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:692)
     9     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:530)
    10     at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:88)
    11     at com.springBoot.ioc.test.IocTestDemo.main(IocTestDemo.java:17)
    12 Caused by: java.lang.IllegalArgumentException: @ComponentScan ANNOTATION type filter requires an annotation type: class com.springBoot.ioc.controller.StudentController
    13     at org.springframework.util.Assert.assignableCheckFailed(Assert.java:655)
    14     at org.springframework.util.Assert.isAssignable(Assert.java:586)
    15     at org.springframework.context.annotation.ComponentScanAnnotationParser.typeFiltersFor(ComponentScanAnnotationParser.java:142)
    16     at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:102)
    17     at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:288)
    18     at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245)
    19     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:202)
    20     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:170)
    21     ... 8 more
    22 
    23 Process finished with exit code 1

    3.原因

      在excludedFilters中的class属性指定的是Controller,Service之类的,不是具体的类。

      应该是如下的程序:

     1 package com.springBoot.ioc.config;
     2 
     3 
     4 import com.springBoot.ioc.controller.StudentController;
     5 import org.springframework.context.annotation.ComponentScan;
     6 import org.springframework.context.annotation.Configuration;
     7 import org.springframework.context.annotation.FilterType;
     8 import org.springframework.stereotype.Controller;
     9 
    10 /**
    11  * @Desciption 配置文件
    12  */
    13 /*@Configuration
    14 public class MySpringBootConfig {
    15     @Bean(name="student")
    16     public Student getStu(){
    17         Student student=new Student();
    18         student.setId(1L);
    19         student.setUsername("Tom");
    20         student.setPassword("123456");
    21         return student;
    22     }
    23 }*/
    24 @Configuration
    25 @ComponentScan(basePackages="com.springBoot.ioc.*",excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)})
    26 public class MySpringBootConfig{
    27 
    28 }

    4.注意点

      导包的时候,也不要出错。

  • 相关阅读:
    jquery 实例
    jQuery总结或者锋利的jQuery笔记一
    前端 ajax 改写登录界面
    使用mybatisgenerator 辅助工具逆向工程
    一个ssm综合小案例-商品订单管理-第二天
    一个ssm综合小案例-商品订单管理-第一天
    一个ssm综合小案例-商品订单管理----写在前面
    delphi Ribbon 111
    Delphi Excel导入 的通用程序
    1. 微信公众号申请
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9941405.html
Copyright © 2011-2022 走看看