В настоящее время я пытаюсь переместить свой проект из Java EE в проект Spring Boot.Однако я застрял и запутался в замене файла web.xml в конфигурации java.
Я пытался заменить его, но он не работает.Файл web.xml
проекта содержит некоторые filters
и servlet
.Подробности файла web.xml приведены ниже:
<servlet>
<servlet-name>robinTest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>robinTest</servlet-name>
<url-pattern>/secureServices/ </url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>robinTest</servlet-name>
<url-pattern>/simple/ </url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
classpath:application-context-1.xml
classpath:application-context-2.xml
</param-value>
</context-param>
<filter>
<filter-name>robinTestFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>robinTestFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>robinTestFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<filter>
<filter-name>OpenSession Filter</filter-name>
<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
<init-param>
<param-name>flushMode</param-name>
<param-value>COMMIT</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSession Filter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
Я уже заменяю файлы applicationContext.xml
, application-context-1.xml
и application-context-2.xml
в файле JavaConfig, но я не уверен, как мне заменитьservlet
, listener
и filter
в java config файлах.
Я пытался заменить его, но он не работает.Пример кода приведен ниже:
import java.util.HashMap;
import java.util.Map;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.support.OpenSessionInViewFilter;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.DelegatingFilterProxy;
import org.springframework.web.servlet.DispatcherServlet;
@Configuration
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan("org.robin.test");
// container.se
container.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher = container.addServlet("robinTest", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(2);
dispatcher.addMapping("/simple/");
dispatcher.addMapping("/secureServices/");
FilterRegistration.Dynamic filter = container.addFilter("robinTestFilter", DelegatingFilterProxy.class);
filter.setInitParameter("targetBeanName", "robinTestFilter");
filter.addMappingForUrlPatterns(null, true, "/*");
FilterRegistration.Dynamic filterSession = container.addFilter("OpenSession Filter", OpenSessionInViewFilter.class);
Map<String, String> filterMap=new HashMap<>();
filterMap.put("singleSession", "true");
filterMap.put("sessionFactoryBeanName", "sessionFactory");
filterMap.put("flushMode", "COMMIT");
filterSession.setInitParameters(filterMap);
filterSession.addMappingForUrlPatterns(null, true, "/*");
}
}
Помогите мне избавиться от этой проблемы, чтобы я мог сосредоточиться на других работах.
Заранее спасибо.