Springboot快速入门

简介: Springboot快速入门

前言

源码在文末

如果你学习使用过 Spring ,那你一定知道它的配置有多么繁杂,原本只是想写个查询小接口,结果环境搭建了很长时间。如果你对 PHP 有了解,那你就知道在以前建站为王的年代,PHP 才是最好的语言。

现在为了系统协同开发和高可用性,微服务是非常好的解决方案,微服务相关的生态、组件也越来越多,开始动手吧

一个 SpringBoot 示例项目

开发环境:IDEAJDK8、联网状态、Maven

本次使用 idea 进行演示,如果你还在使用 eclipse ,不妨用 idea 试试。在开始以前,配置好本地的 Maven 环境。

https://start.spring.io/ 网站提供了开发模板,直接帮我们构建构建初始化 springboot 项目,如果你不想用,也可以新建 Maven 项目,再构建一遍。

  • 新建项目

启动 idea ,新建 File --> New --> Project --> Spring Initializr --> Next

设置好项目名(字母全部小写)和 JDK 版本

后面直接 Next 默认构建 Finish 就 OK,到现在,一个 springboot 项目已经构建好。


启动:执行 SpringbootfirstdemoApplication.javamain 方法,看到下图 spring 图案,我们的第一个 springboot 项目启动成功了

工程结构解析

  • src/main/java 程序开发以及主程序入口
  • src/main/resources 配置文件
  • src/test/java 测试程序

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

root package 结构:com.example.myproject

com
  +- example
    +- myproject
      +- Application.java
      |
      +- model
      |  +- Customer.java
      |  +- CustomerRepository.java
      |
      +- service
      |  +- CustomerService.java
      |
      +- controller
      |  +- CustomerController.java
      |
  1. Application.java(也是程序入口) 建议放到根目录下面,主要用于做一些框架配置
  2. model 目录主要用于实体与数据访问层(Repository)
  3. service 层主要是业务类代码
  4. controller 负责页面访问控制

项目配置解析

约定优先配置(convention over configuration)

SpringBoot 出现的一大原因就是为了简化 Spring 框架中繁复纷杂的配置(Java Config)


Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

SpringBoot MVC 模式

学习一门新技能,搭建一个 web 是最直观的获得感。

  1. pom.xml 文件 dependencies 标签中添加配置
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter :核心模块,包括自动配置支持、日志和 YAML,如果引入了 spring-boot-starter-web web 模块可以去掉此配置,因为 spring-boot-starter-web 自动依赖了 spring-boot-starter。

  • spring-boot-starter-test :测试模块,包括 JUnitHamcrestMockito
  1. 编写控制器(Controller)
@RestController
public class HelloWorldController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
}

@RestController 的意思就是 Controller 里面的方法都以 json 格式输出,不用再写 Json 配置。

3、启动主程序,打开浏览器访问 http://localhost:8080/hello,就可以看到效果了,有木有很简单!

在开发调试时,我们可以需要实时调试,使用热加载,在 pom.xml 加入以下配置


 <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
</plugins>
</build>

即生产环境禁用,该模块在完整的打包环境下运行的时候会被禁用。如果你使用 java -jar启动应用或者用一个特定的 classloader 启动,它会认为这是一个“生产环境”。


使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。


完整代码仓库:https://github.com/Rodert/JavaPub/

最后:知识点总结

文章底部都有对应原创PDF,持续更新中,

目录
相关文章
|
3月前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
743 4
|
JSON Java Maven
Springboot2.0快速入门(第一章)
Springboot2.0快速入门(第一章)
|
传感器 IDE 物联网
ESP8266接入阿里云物联网平台上传温湿度数据
本文章使用NodeMCU(ESP8266)开发板和SHTC3温湿度传感器接入阿里云物联网(IoT)平台,并上传读取到的温湿度数据。
23172 6
ESP8266接入阿里云物联网平台上传温湿度数据
|
虚拟化 Docker 容器
DockerHub被禁掉的应对之法
在DockerHub被禁用或访问受限的情况下,可以选择使用其他公共镜像仓库、本地私有镜像仓库或镜像加速器。这些替代方案不仅能够保证容器化应用的正常运行,还可以根据具体需求提供不同的功能和服务。确保按照文档和指南进行配置,以实现最佳效果和性能。
3102 21
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
存储 机器学习/深度学习 安全
Java基础+进阶
本文适合Java入门和复习回顾。内容覆盖JDK下载和hello world、IDEA下载安装配置、类、基本数据类型、方法、修饰符、关键字、面向对象、继承、多态、接口、异常、集合、i/o流、多线程、网络编程、Lambda表达式、接口组成更新、方法引用、函数式接口、 Stream流、 反射、模块化、XML
Java基础+进阶
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的论文管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的论文管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
550 0
|
安全 Ubuntu 测试技术
l4re Getting started
l4re Getting started
802 0
|
JavaScript Java 测试技术
基于微信小程序的在线学习系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的在线学习系统+springboot+vue.js附带文章和源代码设计说明文档ppt
333 0
|
消息中间件 存储 负载均衡
Kafka高可用性指南:提高数据一致性和集群容错能力!
**Kafka高可用性概览** - 创建Topic时设置`--replication-factor 3`确保数据冗余和高可用。 - 分配角色:Leader处理读写,Follower同步数据,简化管理和客户端逻辑。 - ISR(In-Sync Replicas)保持与Leader同步的副本列表,确保数据一致性和可靠性。 - 设置`acks=all`保证消息被所有副本确认,防止数据丢失,增强一致性。 - 通过这些机制,Kafka实现了分布式环境中的数据可靠性、一致性及服务的高可用性。
1574 0

热门文章

最新文章