• 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
  • 相关阅读:
    SystemVerilog搭建测试平台---第一章:验证导论
    二线制I2C CMOS串行EEPROM续
    二线制I2C CMOS串行EEPROM
    Codeforces 777E:Hanoi Factory(贪心)
    2019HPU-ICPC-Training-1
    Codeforces 777B:Game of Credit Cards(贪心)
    Codeforces 777D:Cloud of Hashtags(暴力,水题)
    Codeforces 777C:Alyona and Spreadsheet(预处理)
    Codeforces 888D: Almost Identity Permutations(错排公式,组合数)
    Codeforces 888E:Maximum Subsequence(枚举,二分)
  • 原文地址:https://www.cnblogs.com/guanghe/p/10965816.html
Copyright © 2020-2023  润新知