Как преобразовать код web.xml в конфигурацию Java для мелодии Java

Можно ли полностью исключить web.xml из проекта и преобразовать его в конфигурацию Java?

Как преобразовать следующий файл web.xml в конфигурацию java?

Я прошел несколько ссылок для понимания этого

Вот некоторые из них: Как заменить web.xml на файлы конфигурации контекста приложения?

Но не смог найти ни одного учебного пособия / блога, как заменить каждый элемент web.xml на соответствующий конфигурационный файл java. Было бы очень полезно, если бы что-нибудь было доступно..

Например, некоторые фильтры поступают через библиотеки, и нам просто нужно объявить в web.xml для функциональности. Как этого можно добиться в конфигурации java (заменив весь web.xml на конфигурацию java)

  <filter>
            <filter-name>monitoring</filter-name>
            <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
            <init-param>
                <param-name>allowed-addr-pattern</param-name>
                <param-value>127\.0\..*\..*</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>monitoring</filter-name>
            <url-pattern>/monitoring</url-pattern>
        </filter-mapping>
        <listener>
            <listener-class>net.bull.javamelody.SessionListener</listener-class>
        </listener>


        <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>Monitoring</realm-name>
        </login-config>

        <security-constraint>
            <web-resource-collection>
                <web-resource-name>Monitoring</web-resource-name>
                <url-pattern>/monitoring</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>jmon-admin</role-name>
            </auth-constraint>
            <!-- if SSL enabled (SSL and certificate must then be configured in the 
                server) <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
                </user-data-constraint> -->
        </security-constraint>

1 ответ

Следуйте этому, я уверен, что это поможет вам:

http://artur.ejsmont.org/blog/content/grails-clean-build-deleted-classes-target-folder

Думаю, мне это наконец удалось

Для мониторинга sql добавьте это в конфигурацию источников данных

  @Bean
  public SpringDataSourceBeanPostProcessor monitoringDataSourceBeanPostProcessor() {
    SpringDataSourceBeanPostProcessor processor = new SpringDataSourceBeanPostProcessor();
    processor.setExcludedDatasources(null);
    return processor;
  }

добавьте это в свой securityConfig (вы можете ограничить его для определенных ролей)

.antMatchers("/monitoring/**")

и необязательный шаг - отредактировать этот класс (чтобы переопределить метод onStartup), но я думаю, что по умолчанию он не нужен

import net.bull.javamelody.MonitoringFilter;
import net.bull.javamelody.Parameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.DispatcherType;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import java.util.EnumSet;

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  private static final Logger LOGGER = LoggerFactory.getLogger(AppInitializer.class);
  @Override
  protected Class<?>[] getRootConfigClasses() {
    return null;
  }

  @Override
  protected Class<?>[] getServletConfigClasses() {
    return new Class<?>[]{SpringWebConfig.class};
  }

  @Override
  protected String[] getServletMappings() {
    return new String[]{"/"};
  }

  @Override
  public void onStartup(ServletContext servletContext) throws ServletException {
    super.onStartup(servletContext);
    FilterRegistration javaMelody = servletContext.getFilterRegistration("javamelody");
    if (javaMelody != null) {
      LOGGER.info("Java Melody Filter Registration found: {}", javaMelody);
      // Filter registered by Servlet Container via web-fragment in
      // javamelody.jar
      addFilter(javaMelody);
    } else {
      LOGGER.info("Java Melody Filter Registration not found. Registering dynamically");
      // Running in embedded server mode.
      FilterRegistration.Dynamic javaMelodyFilter = servletContext.addFilter("javamelody", new MonitoringFilter());
      addFilter(javaMelodyFilter);
    }
  }

  private void addFilter(FilterRegistration javaMelody) {
    javaMelody.addMappingForUrlPatterns(
            EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC), true, "/*");
    javaMelody.setInitParameter(Parameter.LOG.getCode(), Boolean.toString(false));
    javaMelody.setInitParameter(Parameter.DISPLAYED_COUNTERS.getCode(), "http,sql,error,log");
  }

}

Я нашел эти источники здесь и здесь

Другие вопросы по тегам