SpringBoot新手入门完整教程和项目示例

文章目录

SpringBoot新手入门完整教程和项目示例

1、SpringBoot简介

Spring Boot是由Pivotal团队提供的全新框架,其中"Boot"的意思就是"引导",Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速开发 Spring应用的方式。其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用"习惯优于配置"的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。

Spring Boot是开发者和Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的Spring Boot就是为了对Java web 的开发进行"简化"和加"快"速度,简化开发过程中引入或启动相关Spring 功能的配置。这样带来的好处就是降低开发人员对于框架的关注点,可以把更多的精力放在自己的业务代码上。

同时随着微服务概念的推广和实践,Spring Boot的精简理念又使其成为Java微服务开发的不二之选,也可以说,Spring Boot其实就是为了微服务而生的Java web框架。

先如今,Spring Boot已经在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

2、Spring Boot的核心功能?(优点)

1、 可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。

2、 内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。

3、 简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。

4、 自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。

5、 提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。

6、 无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。

我们的主要目标是:

  • 为所有Spring开发提供一个更快,更广泛的入门体验。
  • 立即开始斟酌,但随着需求开始偏离默认值,快速避开
  • 提供大型项目(如嵌入式服务器,安全性,指标,运行状况检查和外部配置)通用的一系列非功能性功能。
  • 绝对不会生成代码,并且不需要XML配置。

3、SpringBoot与SpringMVC 的区别?

说白了就是SpringBoot Web组件默认集成SpringMVC框架,SpringMVC3.0以后支持注解方式使用java代码启动SpringMVC。

4、构建SpringBoot项目

4.1、在官网自动生成下载spring boot项目

1、访问http://start.spring.io/

点击GENERATE后会自动下载刚才创建好的名为Springdemo的项目,然后使用idea打开即可!

4.2、手动使用maven创建SpringBoot项目

1、创建一个maven项目,最好不用骨架

2、创建好项目后,在pom.xml中添加springboot相关依赖

java 复制代码
<?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 http://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.2.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>cn.fpl</groupId>
    <artifactId>springboot_helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <!-- 项目源码及编译输出的编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--jdk版本号-->
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!--springboot的启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

</project>

3、创建启动类,一定要和controller等包同级,即在cn.fpl包下

java 复制代码
package cn.fpl;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootHelloworldApp{
    public static void main(String[] args) {
        SpringApplication.run(SpringbootHelloworldApp.class, args);
    }
}

4、创建controller输出内容

java 复制代码
package cn.fpl.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class HelloController {

    @RequestMapping("/")
    @ResponseBody
    public Map hello(){
        Map<String, Object> map = new HashMap<>();
        map.put("msg", "兄弟们,大家好!");
        return map;
    }
}

5、项目结构如下

6、运行启动类,运行结果如下,默认端口为8080

相关推荐
坊钰23 分钟前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表
chenziang128 分钟前
leetcode hot100 LRU缓存
java·开发语言
会说法语的猪34 分钟前
springboot实现图片上传、下载功能
java·spring boot·后端
码农老起34 分钟前
IntelliJ IDEA 基本使用教程及Spring Boot项目搭建实战
java·ide·intellij-idea
m0_7482398339 分钟前
基于web的音乐网站(Java+SpringBoot+Mysql)
java·前端·spring boot
时雨h43 分钟前
RuoYi-ue前端分离版部署流程
java·开发语言·前端
凡人的AI工具箱43 分钟前
每天40分玩转Django:实操多语言博客
人工智能·后端·python·django·sqlite
Cachel wood1 小时前
Django REST framework (DRF)中的api_view和APIView权限控制
javascript·vue.js·后端·python·ui·django·前端框架
麒麟而非淇淋1 小时前
Day13 苍穹外卖项目 工作台功能实现、Apache POI、导出数据到Excel表格
java