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界面(https://start.spring.io/)
  • Spring Tool Suite
  • IntelliJ IDEA
  • SpringBoot CLI

下面是使用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系列教程前言&目录

相关文章
相关标签/搜索