Компоненты Spring Framework не могут разрешить пакетJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Компоненты Spring Framework не могут разрешить пакет

Сообщение Anonymous »

Довольно странная ошибка. В IJ строка "@ComponentScan("ru.kasatchikov.test")" в файле Spring Config выделена красным цветом с надписью "comComponentscan cansolve package", при этом все работает корректно и когда я нажимаю ctrl на "ru. kasatchikov.test", попадаю в нужную директорию. При этом, если я поменяю "ru.kasatchikov.test" на "test", он перестанет подсвечиваться красным, но веб-приложение работать не будет.
maven-файл :

Код: Выделить всё

4.0.0

ru.kasatchikov.test
java-k8s-test
1.0-SNAPSHOT
java-k8s-test Maven Webapp
http://maven.apache.org


UTF-8
6.1.13
17
17




junit
junit
3.8.1
test



org.springframework
spring-core
${spring.version}



org.springframework
spring-context
${spring.version}



org.springframework
spring-web
${spring.version}



org.springframework
spring-webmvc
${spring.version}



jakarta.servlet
jakarta.servlet-api
6.0.0
provided



org.thymeleaf
thymeleaf-spring6
3.1.1.RELEASE



java-k8s-test


Файл SpringConfig:

Код: Выделить всё

@Configuration
@ComponentScan("ru.kasatchikov.test")
@EnableWebMvc //обеспечивает поддержку аннотаций @GetMapping и т.д.
public class SpringConfig implements WebMvcConfigurer {
private final ApplicationContext applicationContext;
@Autowired
public SpringConfig(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(applicationContext);
templateResolver.setPrefix("/WEB-INF/views");
templateResolver.setSuffix(".html");
templateResolver.setCharacterEncoding("UTF-8");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.setEnableSpringELCompiler(true);
return templateEngine;
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
resolver.setCharacterEncoding("UTF-8");
registry.viewResolver(resolver);
}
}
Файл DispatcherServletInitializer:

Код: Выделить всё

public class DispatcherServletInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
// Этот метод использовать не будем
protected Class[] getRootConfigClasses() {
return null;
}

@Override
/* Равносильно тому,  как мы указывали в web.xml путь к
ApplicationContextMVC.xml, здесь мы должны указать
путь к SpringConfig классу
*/
protected Class[] getServletConfigClasses() {
return new Class[] {SpringConfig.class};
}

@Override
/* "/" - эквивалентно тому, что мы все запросы отправляем
на DispatcherServlet
*/
protected String[] getServletMappings() {
return new String[] {"/"};
}

@Override // метод запускается на старте приложения, здесь мы выполняем приватный метод
public void onStartup(ServletContext aServletContext) throws ServletException {
super.onStartup(aServletContext);
registerHiddenFieldFilter(aServletContext);
registerCharacterEncodingFilter(aServletContext);
}
// в этом методе мы вызываем фильтр
private void registerHiddenFieldFilter(ServletContext aContext) {
aContext.addFilter("hiddenHttpMethodFilter",
new HiddenHttpMethodFilter()).addMappingForUrlPatterns(null ,true, "/*");
}
private void registerCharacterEncodingFilter(ServletContext aContext) {
EnumSet dispatcherTypes = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);

CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceEncoding(true);

FilterRegistration.Dynamic characterEncoding = aContext.addFilter("characterEncoding", characterEncodingFilter);
characterEncoding.addMappingForUrlPatterns(dispatcherTypes, true, "/*");
}
}
Изображение



Подробнее здесь: https://stackoverflow.com/questions/791 ... ve-package
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»