当前位置: 首页 > news >正文

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

文章目录

  • SpringBoot新手入门完整教程和项目示例
    • 1、SpringBoot简介
    • 2、Spring Boot的核心功能?(优点)
    • 3、SpringBoot与SpringMVC 的区别?
    • 4、构建SpringBoot项目
    • 4.1、在官网自动生成下载spring boot项目
    • 4.2、手动使用maven创建SpringBoot项目
      • 1、创建一个maven项目,最好不用骨架
      • 2、创建好项目后,在pom.xml中添加springboot相关依赖
      • 3、创建启动类,一定要和controller等包同级,即在cn.fpl包下
      • 4、创建controller输出内容
      • 5、项目结构如下
      • 6、运行启动类,运行结果如下,默认端口为8080

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相关依赖

<?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包下

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输出内容

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("/")@ResponseBodypublic Map hello(){Map<String, Object> map = new HashMap<>();map.put("msg", "兄弟们,大家好!");return map;}
}

5、项目结构如下

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/281367.html

相关文章:

  • PHP留言板实现
  • ssm+vue的物流配送人员车辆调度管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项项目。
  • day1·算法-双指针
  • 在vue中,切换页面之后如何关闭定时器
  • 观测云产品更新 | 日志、场景仪表板、监控器等
  • 【JupyterLab】在 conda 虚拟环境中 JupyterLab 的安装与使用
  • HTML--JavaScript--引入方式
  • 第28关 k8s监控实战之Prometheus(七)
  • SSC | Blue Prism报告:2024年智能自动化(IA)7大趋势预测
  • el-tree定义左边箭头,包括下级出现连线
  • C++ 多线程顺序打印
  • x-cmd pkg | duf - df 命令的现代化替代品
  • 202406读书笔记|《沉睡的线条世界》——翻山越岭,只为与你分享点滴的快乐
  • [论文阅读]4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments
  • Python: vars()详细解释
  • 2024年1月15日Arxiv最热论文推荐:斯坦福LLM精准微调新框架、GPT不愿承认回答错误、速度快15倍的3D全景分割新突破
  • 1.5 面试经典150题 - 轮转数组
  • Linux的基础命令学习
  • 个人数据备份方案分享(源自一次悲惨经历)
  • SpringBoot教程(八) | SpringBoot统一结果封装
  • Ubuntu 22.04 安装Fail2Ban
  • Ubuntu 22.04 编译安装 Qt mysql驱动
  • Mindspore 公开课 - CodeGeeX
  • 说一下mysql的锁
  • rime中州韵小狼毫 日期/农历 时间 事件 节气 滤镜
  • 【前端】前后端的网络通信基础操作(原生ajax, axios, fetch)
  • Matter - 配置工厂数据(2)
  • 版本控制背景知识
  • tensorflow报错: DNN library is no found
  • DA14531-高级应用篇-用户如何开启OTA服务