SPring 下WEB API 接口的发布和客户端访问

1.增加实例化bean的class类

    import java.io.IOException;
    import javax.servlet.GenericServlet;
    import javax.servlet.Servlet;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;

    public class ServiceInfoProxy extends GenericServlet {

private static final long serialVersionUID = 1L;
private String targetBean;
        private Servlet proxy;
    
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1)
                throws ServletException, IOException {
                proxy.service(arg0, arg1);
        }

        @Override
        public void init() throws ServletException {
            this.targetBean = getServletName();
            getServletBean();
            proxy.init(getServletConfig());
        }
    

        private void getServletBean() {                                                            

 WebApplicationContext wac =             WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());

            this.proxy = (Servlet)wac.getBean(targetBean);//get proxyBean
        }
}

2.逻辑类TaskStatusCallback继承HttpServlet,如下:

    public class TaskStatusCallback extends HttpServlet{

        public TaskStatusCallback() {
            super();
        }

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,                 IOException {
System.out.println("get 方式逻辑实现");
        }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,                 IOException {
            System.out.println("post 方式逻辑实现");
        }

      @Override
      public void init(ServletConfig config) throws ServletException {
             System.out.println("~~~START1~~~");
         }
    

  }

    3.spring.xml里面加入以下内容:

        <bean id="taskStatusCallback" class="ly.webApi.TaskStatusCallback"/>

     4.web.xml下发布接口,如下:

         <servlet>
                <servlet-name>taskStatusCallback</servlet-name>
                <servlet-class>ly.utils.ServiceInfoProxy</servlet-class>
                <load-on-startup>3</load-on-startup>
          </servlet>
          <servlet-mapping>

                <servlet-name>taskStatusCallback</servlet-name>

                <!--发布路径-->

                <url-pattern>/service/taskStatusCallback/*</url-pattern>
          </servlet-mapping>



猜你喜欢

转载自blog.csdn.net/u013002905/article/details/80276401