我试图在Spring Boot配置中使用FilterRegistrationBean添加2个单独的过滤器。
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterResgistrationAccess registration = new FilterResgistrationAccess();
registration.setFilter(new FeatureAccessFilter());
registration.addUrlPatterns("/api/*");
registration.setName("featureAccessFilter");
registration.addInitParameter("paramName", "paramValue");
registration.setOrder(1);
return registration;
}
@Bean
public FilterRegistrationBean shareFilterRegistration() {
FilterResgistrationShare registration = new FilterResgistrationShare();
registration.setFilter(new ShareAccessFilter());
registration.addUrlPatterns("/content_external/*");
registration.setName("shareAccessFilter");
registration.setOrder(2);
return registration;
}
但它给出了以下错误和未能启动应用程序上下文。请让我知道我怎样才能达到同样的目标。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'featureAccessFilter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.boot.context.embedded.FilterRegistrationBean com.beroe.insync2.config.FeatureAccessFilter.filterRegistrationBean; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.boot.context.embedded.FilterRegistrationBean] is defined: expected single matching bean but found 2: someFilterRegistration,shareFilterRegistration at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
Bean是按类型搜索的,对于这两个Bean,类型是相同的,所以这就是问题所在。
要解决这个问题,您可以添加@qualifier,通过bean名称来解决autowire。
或者,如果默认情况下应该使用一个Bean,您也可以将@primary添加到其中一个Bean中。
@Bean
@Primary
FilterRegistrationBean someFilterRegistration() {
...
}
@Bean
FilterRegistrationBean shareFilterRegistration() {
...
}
@Autowired
FilterRegistrationBean bean;
您可以自动连接一些FilterRegistration(),并通过执行以下操作
@Autowired
@Qualifier("shareFilterRegistration")
FilterRegistrationBean bean;
你会得到另一个的。
我想用这种设计实现spring boot应用程序的身份验证和授权: 第一组endpoint("/api/**)将通过请求标头传递api密钥来获得授权。应该允许所有人进行身份验证。 第二个组(/admin/**)将通过点击/loginendpoint来进行身份验证,该endpoint将传递用户名和密码,我将在其中拥有自定义的UserDetailService。如果身份验证良好,将返回令牌并用于授权其
我试图设置一个独立的Spark2.0服务器来并行处理分析功能。为此,我希望有一个带有多个执行者的工作人员。 我在使用: 独立Spark 2.0 8核 24gig ram Windows server 2008 pyspark(尽管这看起来不相关)
我的任务是比较一些当前时期的日志和旧的日志。例如——本周日志和前一周日志。但是当我创建这样的第二个轴时 我有一个空的部分,因为我所有的xAx都是“时间”类型的,并且点的时间不一样(这是绝对正常的行为)。我有这种情况 但是我需要制作独立的轴,例如:顶部轴开始于30sep,结束于3oct底部轴开始于7oxt,结束于10oct,它们的长度都相同 我试着创造这样的斧头 但是如果没有“ticks”属性,我会
问题内容: 我正在尝试制作一个第三方的简单的独立/摇摆应用程序,该应用程序使用hibernate模式在另一个应用程序的数据库上进行连接,所以这是我所做的: 1-使用的jar: 2- hibernate.cfg.xml(位于src文件夹中): 3- SessionFactoryHelper: 4-样本查询: 运行该应用程序时,出现以下异常: 谁能告诉我我的配置出了什么问题? 问题答案: 这个问题与H
我目前正在使用嵌入式neo4j运行我的webapp。现在我想换成独立的neo4j服务器。在考虑使用独立服务器时,我偶然发现了spring-data-neo4j。在使用SpringDataJPA并记住连接到db是多么容易之后,我开始寻找如何使用spring-data-neo4j的好教程。 这似乎可能与Spring-数据-neo4j-Rest。这就留下了一个问题,如何用java config配置它,而
我试图添加一个过滤器,需要参数作为FilterConfig给出。我将它添加到WebApplication ation初始::onStartup(ServletContext容器)方法中,并且配置良好(init方法使用正确的FilterConfig调用)。 关键是我使用的是SpringSecurityWebSecurityConfigureAdapter,我的过滤器从未被调用过(不在过滤器链中)。如