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
posted @ 2019-06-03 09:30  光何  阅读(227)  评论(0编辑  收藏  举报