文章目录
- SpringBoot新手入门完整教程和项目示例
-
- 1、SpringBoot简介
- [2、Spring Boot的核心功能?(优点)](#2、Spring Boot的核心功能?(优点))
- [3、SpringBoot与SpringMVC 的区别?](#3、SpringBoot与SpringMVC 的区别?)
- 4、构建SpringBoot项目
- [4.1、在官网自动生成下载spring boot项目](#4.1、在官网自动生成下载spring boot项目)
- 4.2、手动使用maven创建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项目
点击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;
}
}