SpringBoot系列教程起步

本篇學習目標

  • Spring Boot是什麼?
  • 構建Spring Boot應用程序
  • 三分鐘開發SpringBoot應用程序 本章源碼下載

Spring Boot是什麼?

spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。經過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成爲領導者。html

  • Spring的目標是致力於全方位簡化Java開發
  • SpringBoot是簡化Spring開發

咱們來探討一下一個標準的Spring程序咱們須要該作什麼?

  • 標準項目結構,以及必要的依賴
  • web.xml文件(或一個WebAPplicationInitializer實現)
  • Spring的相關配置
  • Controller控制器
  • WEB應用服務器(Tomcat)

咱們能夠發現只有一個Controller是和咱們的業務相關的,其餘的都是Spring開發Web應用程序的通用模板,而SpringBoot就能讓你只寫控制器便可,剩下的全都交給SpringBoot便可,下面咱們一塊兒來看一下SpringBoot是如何簡化Spring開發的前端

SpringBoot如何簡化Spring開發的?

  • 起步依賴 : 告訴SpringBoot須要什麼功能,它就能引入相關依賴
  • 自動配置 : 針對Spring常見功能自動提供相關配置
  • 命令行界面 : 編寫部分代碼就能夠運行程序
  • Actuator : 能讓你深刻到運行中的SpringBoot一探究竟

構建SpringBoot應用程序

構建SpringBoot項目,有不少種方法,例以下面所示,你可使用任何一種方法構建SpringBoot項目java

下面是使用web界面構建SpringBoot項目示例圖,另外幾種方式再也不一一累述 git

三分鐘開發SpringBoot應用程序

如今咱們要花上三分鐘建立一個小的應用程序,是一個相似待辦事項的小應用,從這個應用程序中,咱們就能感覺到SpringBoot的起步依賴和自動配置的強大魅力 本章源碼下載github

  1. 建立一個BOOK(實體類)
  2. 建立一個Repository(倉庫接口)
  3. 建立一個Controller(控制器)

Book實體web

@Entity
public class Book {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	private String reader;
	private String isbn;
	private String title;
	private String author;
	private String description;
	
    getter and setter .....
}

倉庫接口spring

@Repository
public interface ReadingListRepository extends JpaRepository<Book, Long> {

    List<Book> findByReader(String reader);

}

控制器數據庫

@Controller
@RequestMapping("/readingList")
public class ReadingListController {

    private static final String reader = "jimisun";

    @Autowired
    private ReadingListRepository readingListRepository;

    @RequestMapping(method = RequestMethod.GET)
    public String readersBooks(Model model) {

        List<Book> readingList = readingListRepository.findByReader(reader);
        if (readingList != null) {
            model.addAttribute("books", readingList);
        }
        return "readingList";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String addToReadingList(Book book) {
        book.setReader(reader);
        readingListRepository.save(book);
        return "redirect:/readingList";
    }

}

前端htmlapi

......

啓動SpringBoot項目,訪問 http://localhost:8080/readingList springboot

剛纔發生了什麼?

咱們不是要進行配置一些類的配置嗎?NO NO NO,使用SpringBoot讓配置成爲了過去,SpringBoot的自動配置(利用Spring的條件化配置)擔任起了配置Spring的重任

  • 由於ClassPath裏有H2,因此會建立一個H2數據庫的Bean,JPA實現須要它訪問數據庫
  • 由於ClassPath裏有Hibernate(Spring Data JPA傳遞引入的)實體管理器,因此自動配置會配置與Hibernate有關的Bean
  • 由於ClassPath裏有Spring Data JPA,因此會根據倉庫的接口建立倉庫的實現
  • 由於ClassPath裏有Spring MVC(Web的起步依賴引入的),因此會配置Spring的DispatcherServlet並啓用Spring MVC
  • 由於ClassPath裏有Tomcat(Web起步依賴引入的),因此會啓動一個嵌入式的Tomcat容器,監聽8080端口
  • ......

咱們能夠看到,得益於SpringBoot的起步依賴和自動配置,咱們幾乎不用作任何配置,可是在某些場景下自動配置可能並不如意,或者你須要另一種配置,該怎麼辦? Java工程師之SpringBoot系列教程將爲您詳細揭曉SpringBoot神祕面紗

該教程所屬Java工程師之SpringBoot系列教程,本系列相關博文目錄 Java工程師之SpringBoot系列教程前言&目錄

相關文章
相關標籤/搜索