【问题标题】:Third party QueryCryptInitServlet Configuration with SpringMVC 4.3.4 using Java Configuration使用 Java 配置的 SpringMVC 4.3.4 的第三方 QueryCryptInitServlet 配置
【发布时间】:2017-01-13 07:31:00
【问题描述】:

我正在为基于 Spring 的应用程序配置完全无 xml 的配置,我们正在使用 servlet 3.0 以便使用注释支持替换 web.xml

我们使用com.guhesan.querycrypt.servlet.QueryCryptInitServlet 进行查询参数加密。最初我们使用web.xml 进行配置,现在没有web.xml。所以,请建议,我们如何使用带有 SpringMVC

的 java 配置来配置它

web.xml 中的示例代码(旧)

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>com.guhesan.querycrypt.listener.QueryCryptSessionListener</listener-class>
    </listener>

<servlet>
    <servlet-name>QueryCryptServlet</servlet-name>
    <servlet-class>com.guhesan.querycrypt.servlet.QueryCryptInitServlet</servlet-class>       
      <init-param>
         <param-name>queryName</param-name>
         <param-value>_qx</param-value>
      </init-param>
      <init-param>
         <param-name>debug</param-name>
         <param-value>false</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
</servlet>

同样如何使用 java 配置使用 Spring 进行配置。

【问题讨论】:

    标签: java spring spring-mvc encryption


    【解决方案1】:

    如果您可以扩展 Listener 和 Servlet,您可以使用 Servlet 3.0 规范注释 @WebListener@WebServlet 来注释扩展版本,这些是在运行时发现的。

    如果使用 Spring Boot,则需要添加@ServletComponentScan

    另一个选项是覆盖AbstractAnnotationConfigDispatcherServletInitializer.onStartup(ServletContext servletContext),因为这允许您添加额外的 Servlet 和侦听器。像这样

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        ServletRegistration defaultServlet = servletContext.getServletRegistration("default");
        defaultServlet.addMapping("/favicon.ico");
        super.onStartup(this.servletContext);
    }
    

    如果您这样做,您应该知道在加载 Spring 应用程序上下文之前调用了 startUp,但由于您可能不需要 Servlet 和侦听器是 spring bean,这无关紧要。

    【讨论】:

    • ServletRegistration.Dynamic addQueryCryptServlet = servletContext.addServlet("QueryCryptServlet", new QueryCryptInitServlet()); Map initParams = new HashMap(); initParams.put("queryName", "_qx"); initParams.put("debug", "false"); addQueryCryptServlet.setInitParameters(initParams); addQueryCryptServlet.setLoadOnStartup(1); // 注册 QueryCryptServlet 监听器 servletContext.addListener(new QueryCryptSessionListener());
    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2017-05-31
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多