Ошибки, возникающие при добавлении `excludeFilters` для аннотации @ComponentScan в Spring Boot при компиляции с использованием Scala - PullRequest
0 голосов
/ 30 сентября 2019
@ComponentScan(
  basePackages = Array("com.org.tools"),
  excludeFilters = {@Filter(type = FilterType.ASPECTJ, pattern = "com.org.tools.clients.*")})
@Component
@Profile(Array("app"))
class Application(pr: PRunner) extends CommandLineRunner {
  @Override
  def run(args: String*): Unit = {
    pRunner.run(args)
  }
}

Проблема возникает в строке excludeFilters типа и ключевого слова pattern. я что-то упускаю? enter image description here

1 Ответ

0 голосов
/ 30 сентября 2019

Исходя из вашего кода, вы передаете "com.org.tools.clients.*" как строку onyl, однако, просмотрев небольшую документацию, вы должны передать Array of Strings.

/**
* The pattern (or patterns) to use for the filter, as an alternative
* to specifying a Class {@link #value}.
* <p>If {@link #type} is set to {@link FilterType#ASPECTJ ASPECTJ},
* this is an AspectJ type pattern expression. If {@link #type} is
* set to {@link FilterType#REGEX REGEX}, this is a regex pattern
* for the fully-qualified class names to match.
* @see #type
* @see #classes
*/
String[] pattern() default {};

Затем вы должны поместить свой код вЧтобы исправить это, выполните следующие действия.

@ComponentScan(
    basePackages = Array("com.org.tools"),
    excludeFilters = {@Filter(type = FilterType.ASPECTJ, pattern = Array("com.org.tools.clients.*")})

ОБНОВЛЕНИЕ С ИСПОЛЬЗОВАНИЕМ SCALA

Поскольку вы используете Scala, то вы type зарезервированы на keywordтогда вы должны использовать обратные пометки, чтобы вы могли использовать его type .сделать следующее:

import org.springframework.context.annotation.{ComponentScan, Configuration, FilterType, Profile}
import org.springframework.stereotype.Component

@Configuration
@ComponentScan(
  basePackages = Array("com.org.tools"),
  includeFilters = Array(
    new ComponentScan.Filter(`type` = FilterType.ASPECTJ,
                              pattern = Array("com.org.tools.clients.*"))))
@Profile(Array("app"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...