spring boot入門

一、spring、spring mvc、spring boot之間的關係

spring boot就是一個大框架裏面包含了許許多多的東西,其中spring就是最核心的內容之一,當然也就包含spring mvc。spring mvc 只是spring 處理web層請求的一個模塊。因此他們的關係大概就是這樣:spring mvc  < spring < springboot。Spring Boot 設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。嵌入的 Tomcat,無需部署 WAR 文件Spring Boot 並不是對 Spring 功能上的增強,而是提供了一種快速使用 Spring 的方式。

二、快速開始一個spring boot項目

(1)使用 maven 構建 SpringBoot 項目,packaging選jar

(2)pom.xml文件裏邊增加如下配置
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

(3)編寫一個spring mvc controller類,增加相應註解
/**
 *spring boot例子 
 *1、編寫spring mvc controller類
 *2、添加@Controller
 *3、添加@RequestMapping("/test")
 *4、返回值要做jackson處理添加@ResponseBody
 */
@Controller
public class TestController {
    @RequestMapping("/test")
    @ResponseBody
    public Map test() {
        Map m = new HashMap<String, Object>();
        m.put("ceshi", "ok");
        return m;
    }
}

(4)添加一個啓動類,啓動類上增加註解@SpringBootApplication,注意該啓動類必須位於controller類的同級或上級目錄下
/**
 * 啓動類
 */
@SpringBootApplication
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        SpringApplication.run(App.class, args);
    }
}

(5)運行啓動類,訪問瀏覽器結果如下

 

三、整合servlet、filter、listener

(1)整合servlet,在編寫好的servlet上加註解@WebServlet(name = "FirstServlet", urlPatterns = "/first" )

@WebServlet(name = "FirstServlet", urlPatterns = "/first" )
public class FirstServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("First servlet!");
}
}

(2)整合filter,在filter上加註解@WebFilter(filterName = "FirstFilter",urlPatterns = {"/first"})

@WebFilter(filterName = "FirstFilter",urlPatterns = {"/first"})
public class FirstFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        System.out.println("過濾開始。。。");
        chain.doFilter(request, response);
        System.out.println("過濾結束");
    }
}

(3)整合listener,在listener上加註解@WebListener

@WebListener
public class FirstListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
    System.out.println("監聽器");
}
public void contextDestroyed(ServletContextEvent sce) {
        }    
}

(4)啓動類上加註解@SpringBootApplication@ServletComponentScan

@SpringBootApplication
@ServletComponentScan
public class test {
    public static void main(String[] args) {
        SpringApplication.run(test.class, args);
        System.out.println("hello");
    }
}

四、訪問靜態資源,在resources目錄下增加static目錄,靜態資源放在下邊,可以直接通過文件名訪問

五、文件上傳

(1)static目錄下編寫upload.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="filename"/>
<button type="submit">提交</button>
</form>
<img alt="測試" src="images/1.png">
</body>
</html>

(2)編寫controller,增加註解,注意參數名字filename要與頁面的form裏的名字一樣,否則需要其他配置

import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
public class FileUploadController {
    @RequestMapping("/fileUpload")
    public Map<String, Object> fileUpload(MultipartFile filename){
        MultipartFile f = filename;
        System.out.println("-----------"+filename.getOriginalFilename());
        try {
            filename.transferTo(new File("d:/"+filename.getOriginalFilename()));
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Map<String, Object> map = new HashMap();
        map.put("ceshi", "ok");
        return map; 
    }
}

(3)上傳文件最大默認爲1M超過需要在resources目錄下邊增加配置文件application.properties,裏邊增加如下配置(不同springboot版本可能不一樣,本人用的是2.X)

spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=20MB

發佈了30 篇原創文章 · 獲贊 13 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章