一、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