SpringBoot回顾1-第一个helloworld
熟悉了ssm的开发和配置,今天来回顾一个简化ssm开发的SpringBoot框架,相信大家也对ssm的配置已经开始觉得繁琐了,所以SpringBoot诞生了。
SpringBoot简介
SpringBoot的概述
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot的特征
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
那SpringBoot是如何简化开发的?
为了降低Java开发的复杂性,Spring采用了以下4种关键策略:
1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;
2、通过IOC,依赖注入(DI)和面向接口实现松耦合;
3、基于切面(AOP)和惯例进行声明式编程;
4、通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;
SpringBoot第一个Helloworld
我们先上手一个简单的SpringBoot项目来实现一个请求处理来初步了解一下SpringBoot框架的结构和开发模式。
环境要求
- JDK1.8
- Maven-3.6.1
- SpringBoot 2.x
开发工具我们这里使用IDEA
创建项目的方式
首先Spring官方提供了非常方便的工具让我们快速构建项目,我们有两种方式可以创建一个SpringBoot初始化项目。
方式一:使用Spring Initializr 的 Web页面创建项目
1、打开 https://start.spring.io/
2、填写项目信息
3、点击”Generate Project“按钮生成项目;下载此项目
4、解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。
5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。
点击生成后,
下载完成一个demo包
可以看到路径就是一个完整的项目
对应名字如下
然后将下载下来的项目压缩包解压,导入idea即可直接开发
方式二:使用 IDEA 直接创建项目(推荐)
显然步骤1还需要解压导入,不如直接在idea里创建多完美呢。
步骤
1、创建一个新项目
2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现
3、填写项目信息(注意要求必须联网)
4、选择初始化的组件(初学勾选 Web 即可),可以看到这里有很多依赖,就是快速构建项目的过程,其实我们只需要随便勾选一个web的即可,因为我们创建的是maven项目,难道还有什么依赖添加在maven里会很麻烦吗?
5、填写项目路径
6、等待项目构建成功
项目结构分析
可以看到项目自动生成了很多东西
.idea .mvn不多说,idea和maven的配置文件夹
src中有我们刚才创建的路径,还自动生成了resources静态资源文件夹,以及SpringBoot配置文件application.properties,还有一个测试类,和一个熟悉的pom.xml,其他的几个无需刻意了解。
我们可以看看pom.xml里有什么
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.feng</groupId>
<artifactId>helloworld1sb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>helloworld1sb</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
可以看到里面自动导入web、junit以及SpringBoot启动类的依赖,是因为我们刚才在创建的时候勾选的
helloworld跑一跑
我们现在主类同级目录下创建一个controller文件夹,如果对应错误必出现404哈,这里注意路径问题
controller里随便写个
package com.feng.helloworld1sb.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* <h3>helloworld1sb</h3>
* <p></p>
*
* @author : Nicer_feng
* @date : 2020-10-06 09:51
**/
@RestController
public class testController {
@RequestMapping("/hhh")
public String hello(){
return "hello SpringBoot!";
}
}
因为SpringBoot本身其实就是继承了Spring、SpringMVC、Mybatis等框架为一身的,所以在SpringMVC里的各种@RequestMapping等等注解都是拿来即用的
直接启动主类,我们会发现SpringBoot项目启动的特别快,因为他还内置了Tomcat9,
打开浏览器,输入localhost:8080/hhh,就是刚才配置的路径,即可看到效果
可以看到大功告成