zoukankan      html  css  js  c++  java
  • SpringBoot系列教程起步

    本篇学习目标

    • Spring Boot是什么?
    • 构建Spring Boot应用程序
    • 三分钟开发SpringBoot应用程序 本章源码下载

    Spring Boot是什么?

    spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

    • 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项目

    下面是使用web界面构建SpringBoot项目示例图,另外几种方式不再一一累述

    三分钟开发SpringBoot应用程序

    现在我们要花上三分钟创建一个小的应用程序,是一个类似待办事项的小应用,从这个应用程序中,我们就能感受到SpringBoot的起步依赖和自动配置的强大魅力 本章源码下载

    1. 创建一个BOOK(实体类)
    2. 创建一个Repository(仓库接口)
    3. 创建一个Controller(控制器)

    Book实体

    @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 .....
    }
    
    

    仓库接口

    @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";
        }
    
    }
    

    前端html

    ......
    

    启动SpringBoot项目,访问 http://localhost:8080/readingList

    刚才发生了什么?

    我们不是要进行配置一些类的配置吗?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系列教程前言&目录

  • 相关阅读:
    Dactor 一个好用的基于协程的全异步框架,适合复杂异步流程
    mysql原表增加字段且设置默认值及修改字段默认值
    js扩展
    mysql建表且设置主键自增
    mysql事务的实现方式——mvvc+锁
    mysql排他锁
    mysql的共享锁
    mysql的体系结构及sql的执行路径
    小程序 使用echarts 数据动态变换
    js 整理 前端知识点 前端面试题 (2020)(vue)
  • 原文地址:https://www.cnblogs.com/jimisun/p/10060203.html
Copyright © 2011-2022 走看看