《SpringBoot》—— Spring Boot入门

                                                   在这里插入图片描述

一、简介

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用

背景:

J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。

解决:

“Spring全家桶" 时代
Spring Boot → J2EE一站式解决方案
Spring Cloud → 分布式整体解决方案

Spring Boot 优点:

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打包WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

二、环境准备

  • jdk1.8及以上
  • maven3.X
  • Intellij IDEA 2019
  • Spring Boot 1.5.10.RELEASE及以上

IDEA中配置maven:
File → Settings → Maven 配置成本机装好的maven地址
在这里插入图片描述

三、构建项目 Spring Boot HelloWorld

一个功能:浏览器发送hello请求,服务器接受请求并处理,响应HelloWorld字符串;

1、使用Spring Initializer快速创建Spring Boot项目

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;

  • 选择 File -> New —> Project 弹出新建项目的框
  • 选择Spring Initializer,第一次使用需要配置对应的Project SDK,点击New选择本机装好的jdk就行

New Project在这里插入图片描述
- GroupId:定义了项目属于哪个组,举个例子,如果你的公司是xinxindai,有一个项目为accountCenter ,那么groupId就应该是com.xinxindai.accountCenter.
- ArtifactId:该元素定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目的名称作为artifactId的前缀。
- Version:指定了项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。

接下来选择需要的模块;向导会联网创建SpringBoot项目;自动生成SpringBoot项目相关pom文件中的需要导入的包,也会自动生成Application类。@SpringBootApplication详解
在这里插入图片描述在这里插入图片描述
- Project name:项目名
- Project location:项目存放地址

在这里插入图片描述
创建成功如上图所示,Spring Boot 的基础结构共三个文件:
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序

resources文件夹中目录结构
- static:保存所有静态资源;js css images;
- templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
- application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;

另外, Spring Boot 建议的目录结果如下:

com
  +- xinxindai
    +- accountCenter
      +- Application.java
      |
      +- model
      |  +- User.java
      |  +- UserInfo.java
      |
      +- service
      |  +- UserService.java
      |
      +- controller
      |  +- UserController.java
      |
  • Application.java 建议放到根目录下面,主要用于做一些框架配置
  • model 目录主要用于实体与数据访问层(Repository)
  • service 层主要是业务类代码
  • controller 负责页面访问控制
2、编写相关的Controller
/**
 * @author xiaona
 * @date 2019-12-09
 */
@RestController
public class HelloWorldController {

  @RequestMapping("/hello")
  public String hello(){
    return "Hello World!";
  }

}

@RestController 的意思就是 Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!

3、运行主程序测试

打开浏览器访问 http://localhost:8080/hello,就可以看到效果了
在这里插入图片描述

4、简化部署
<!-- 这个插件可以将应用打包成一个可执行的jar包 -->
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

将这个应用打成jar包,直接使用java.jar的命令进行执行;

四、POM文件初探

  1. 父项目

    <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.5.10.RELEASE</version>
    </parent>
    👆他的父项目是👇
    <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-dependencies</artifactId>
     <version>1.5.10.RELEASE</version>
     <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>
    他来真正管理Spring Boot应用里面的所有依赖版本;
    

    Spirng Boot的版本仲裁中心;以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

  2. 启动器

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

    spring-boot-starter-web
    spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;

    Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来,要用什么功能就导入什么场景的启动器

五、总结

SpringBoot是企业级开发的整体整合解决方案,特别用于快速构建微服务应用,我们无需再配置tomcat,无需再写大量xml配置文件,使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,旨在用最简单的方式让开发人员适应各种开发场景;

                                                   在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值