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系列教程前言&目录

  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/jimisun/p/10060203.html
Copyright © 2011-2022 走看看