zoukankan      html  css  js  c++  java
  • Springboot基础

    一、Springboot特点

    1,Springboot设计的目的是用来简化新Spring项目初始搭建以及开发过程。

    2,嵌入式web容器,无需部署war包。

    3,Springboot不是对spring功能上的增强,而是一种快速使用spring的方式。

    二、springboot启动器存放的位置

      启动器可以和controller位于同一个包下,或者位于controller的上一级包中,但不能放到controller的平级以及子包下。

    三、springboot整合servlet

    1,通过注解扫面完成servlet组件的注入

      将注解@WebServlet(name="myServlet", urlPatterns="/myServlet")加到继承了HttpServlet的类上,并且在springboot的启动器配置除了SpringBootApplication外需要开启对servlet注解的扫描@ServletComponentScan。

    1 @WebServlet(name="myServlet", urlPatterns="/myServlet")
    2 public class MyServlet extends HttpServlet {
    3     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    4         super.doGet(request, response);
    5     }
    6 }

    2,通过配置Bean完成Servlet组件的注册

      除了编写继承HttpServlet的类之外,需要在Springboot的配置类中添加

    1 @Bean
    2 public ServletRegistrationBean getServletRegistrationBean() {
    3     ServletResigtrationBean bean = new ServletRegistrationBean(new MyServlet());
    4     bean.addUrlMappings("/myServlet");
    5     return bean;
    6 }

    四、Springboot整合Filter

    1,通过注解扫面完成对Filter的注册

      需要在实现了Filter接口的类上添加注解@WebFilter(filterName="myFilter", urlPatterns="/myFilter"),并且在springboot的启动器上除了配置SpringBootApplication外需要开启对Filter的注解扫描@ServletervletComponentScan。

     1 @WebFilter(filterName="myFilter", urlPatterns="/myFilter")
     2 public class MyFilter implements Filter {
     3     @Override
     4     public void init(FilterConfig filterConfig) throws ServletException {
     5     }
     6     @Override
     7     public void destroy() {
     8     }
     9     @Override
    10     public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException{
    11         System.out.println("进入Filter");
    12         filterChain.doFilterf(request, response);
    13         System.out.println("离开Filter");
    14     }
    15 }

    2,通过配置Bean完成对Filter的注册

    1 @Bean
    2 public FilterRegistrationBean getFilterRegistrationBean() {
    3     FilterRegistrationBean bean = new FilterRegistrationBean(new MyFilter());
    4     bean.addUrlPatterns("/myFilter");
    5     return bean;
    6 }

    五,Springboot整合Listener

    1,通过注解扫描完成Listener的注册

      需要在实现了ServletContextListener的类上添加注解@WebListener,再在配置SpringBootApplicatin的启动类上开启@ServletComponentScan扫描即可

     1 @WebListener
     2 pulbic class MyListener implements ServletContextListener {
     3     @Override
     4     pulbic void contextInitialized(ServletContextEvent servletContextEvent) {
     5         System.out.println("servlet context initialized!");
     6     }
     7     @Override
     8     public void contextDestroyed(ServletContextEvent servletContextEvent) {
     9         System.out.prinltn("servlet context destroyed!");
    10     }
    11 }

    2,通过配置Bean完成对Listener组件的注册

    1 @Bean
    2 public ServletListRegistrationBean getServlertListRegistrationBean() {
    3     ServletListRegistrationBean bean = new ServletListRegistrationBean(new MyListener());
    4     return bean;
    5 }

    六、springboot访问静态资源

    1,在springboot1.x中可以直接访问到classpath/static中的静态资源

    2,在springboot1.x中可以添加src/main/webapp即ServletContext的根目录下读取静态资源。

    七、springboot文件上传

     1 @RestController
     2 public class FileUploadController {
     3     @RequestMapping("/fileUpload")
     4     public Map<String, Object> fileUpload(MultiPartFile multiPartFile) throws Exception {
     5         multiPartFile.transferTo(new File("E:/" + multiPartFile.getOriginalFileName()));
     6         Map<String, Object> map = new HashMap<>();
     7         map.put("msg", "ok");
     8         return map;
     9     }
    10 }

    可以在application.properties中配置上传文件相关的控制参数

    1 #设置单个上传文件的大小
    2 spring.http.multipart.maxFileSize=200MB
    3 #设置一次请求上传文件的总容量
    4 spring.http.multipart.maxRequestSize=200MB
  • 相关阅读:
    删除代码中的空行
    Amazon Payment Amazon Flexible Payments Service (Amazon FPS) 示例代码的一个bug提醒
    一个关于SqlServer 中根据概率获取数据的sql 写法
    linq 排序 List<T>类型数据
    OpenSmtp附件中文名显示问题
    体积网格生成浏览器
    有关Lemek's algo中,除了Initial Ray外Second Ray是不可能出现(W0,W1,W2,。。。Z0均严格>0)的证明
    Shape Match 的方法效果极差 气死我了
    所谓“中国学生数学NB”的神话
    基于tetrahedron的柔体
  • 原文地址:https://www.cnblogs.com/guanghe/p/10965816.html
Copyright © 2011-2022 走看看