渣本逆袭!撸了阿里P7大佬的SpringBoot笔记,轻松斩获了25Koffer

本文是一篇关于SpringBoot的简明教程,详细介绍了SpringBoot的简介、优点、项目结构、Controller层、Service层、Dao层的实现,以及如何创建一个完整的SpringBoot项目。通过实例演示了从新建项目、配置到实现CRUD操作的过程,帮助读者快速掌握SpringBoot开发。
摘要由CSDN通过智能技术生成

上一篇分享的是《提高工作效率的IDEA插件》,这篇给大家分享《SpringBoot简明教程》。

 

SpringBoot简明教程

一、SpringBoot简介

1、什么是SpringBoot

SpringBoot用来简化spring应用开发,约定大于配置,去繁从简,是J2EE一站式解决方案

2、SpringBoot的优点

  1. 快速创建独立运行的Spring项目以及主流框架的集成
  2. 使用嵌入式的Servlet容器,应用无需打成WAR包
  3. starts自动依赖与版本控制
  4. 大量的自动配置,简化开发,也可修改默认值
  5. 无需配置XML,无代码生成,开箱即用
  6. 准生成环境的运行时应用监控
  7. 与云计算天然集成

3、Spring Boot Flow体系结构

4、SpringBoot项目

1.SpringBoot项目常见目录结构

2.SpringBoot项目分层

(1)Controller层:控制层

Controller层负责具体的业务模块流程的控制。Controller层负责前后端交互,接受前端请求,调用Service层,接收Service层返回的数据,最后返回具体的页面和数据到客户端。

(2)Service层:业务层

Service层负责业务模块的逻辑应用设计。先设计放接口的类,再创建实现的类,然后在配置文件中进行配置其实现的关联。Service层调用Dao层接口,接收Dao层返回的数据,完成项目的基本功能设计。封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

(3)Dao层:数据访问层

Dao层负责与数据库进行交互。Dao层封装对于数据库的增删改查,不涉及业务逻辑,只是达到按某个条件对数据库中的数据进行某一具体操作的要求。(有的项目中也将Dao层写为Mapper层)

(4)Domain层:数据表对象层

Domain层定义数据库中存储的实体类。(有的项目也将Domain层写为Entity层或Model层)

(5)Config层:配置类层

Config层定义一些与配置有关的类。

3.工作流程

二、Controller层(demo1_controller项目)

1、新建项目

安装IDEA:JAVA语言开发的集成环境

安装JDK:JAVA开发工具包

安装Maven:项目包管理工具,在pom.xml中需要使用的库,maven可自动下载

1.项目建立过程

1.点开File-New-Project,在左侧栏中找到Spring Initializr,在Project SDK栏中选择JDK版本(8),然后点击Next

2.填完信息后,点击Next

此处的组织名和项目名由自己命名,仅是一个项目标识符,没有特别的规则

3.此界面可以选择需要的依赖于选择SpringBoot的版本。此时我们只需要用到spring Web依赖,点击Next。如果后续需求有所变化,可以在pom.xml文件进行修改

4.检查当前页面,点击Finish,此时已经成功新建一个SpringBoot项目

2.新建项目的目录结构

  • /src/main/java/com/example/demo1_controller/Demo1ControllerApplication:启动类
  • /src/main/resources目录下目录结构static:保存所有的静态资源 js css imagestemplates:保存所有的模板页面(SpringBoot默认jar包使用嵌入式的Tomcat,默认不支持jsp页面,可以使用模板引擎freemarker、thyleaf),由于现在倾向前后端开发的模式(后台springboot,前端采用vue,react等),因此模板引擎逐渐在被主流技术淘汰。application.properties:SpringBoot应用配置文件,可以修改一些默认设置。(springboot支持properties和yaml两种格式的配置文件,只要文件名是application,springboot均可识别。)
  • /src/test/java/com/example/demo1_controller/Demo1ControllerApplicationTests:测试类

项目使用的JDK版本可以在File->Project Structure文件夹下的内容进行修改

项目使用的Maven版本可以在File->Settings->Build,Execution,Deployment->Build Toos->Maven下修改

3.部分文件内容

  • pom.xml文件

查看目前pom.xml的依赖模块

 1 <!-- web模块 -->
 2 <dependency>
 3     <groupId>org.springframework.boot</groupId>
 4     <artifactId>spring-boot-starter-web</artifactId>
 5 </dependency>
 6 <!-- test模块 -->
 7 <dependency>
 8     <groupId>org.springframework.boot</groupId>
 9     <artifactId>spring-boot-starter-test</artifactId>
10     <scope>test</scope>
11 </dependency>

新增maven-compiler-plugin插件指定jdk版本(根据实际情况(就是有没有报错)看是否要加,有的人不加也没有问题)。

 1 <build>
 2     <plugins>
 3         <plugin>
 4             <groupId>org.springframework.boot</groupId>
 5             <artifactId>spring-boot-maven-plugin</artifactId>
 6         </plugin>
 7 
 8         <!-- maven-compiler-plugin插件 指定项目源码及编译后的Jdk版本 -->
 9         <plugin>
10             <groupId>org.apache.maven.plugins</groupId>
11             <artifactId>maven-compiler-plugin</artifactId>
12             <version>3.8.1</version>
13             <configuration>
14                 <source>1.8</source>
15                 <target>1.8</target>
16             </configuration>
17         </plugin>
18     </plugins>
19 </build>
  • application.properties文件内容为空

2、Controller类

1.新建Controller类

  1. 在/src/main/java/com/example/demo1_controller目录下新建文件夹controller(右键demo1_controller文件夹->New->Package:controller
  2. controller文件夹下新建类StudentController(右键controller文件夹->New->Java Class:StudentController
  3. StudentController类上添上注解@Controller,表明这是一个controller类(可以在里面定义一些路由函数)此时StudentController.java文件全部内容为
package com.example.demo1_controller.Controller;
import org.springframework.stereotype.Controller;
@Controller
public class StudentController {
}

2.尝试后端给前端返回一个Hello World内容

在StudentController方法类写HelloWorld()方法

1 @ResponseBody
2 @RequestMapping(value = "/helloworld")
3 public String HelloWorld() {
4     return "Hello World";
5 }

(1)@RequestMapping("url")是处理请求地址映射,url是请求路径的一部分。(@RequestMapping表明这是一个路由函数)

此时前端请求路径为:如下图,项目运行结果

@RequestMapping("url")也可以用在controller类上,此时controller类中的方法的请求路径后部分内容为类的url拼接上方法的url

如在controller类上添加@RequestMapping("/student")

 1 @Controller
 2 @RequestMapping(value = "/student")
 3 public class StudentController {
 4 
 5     @ResponseBody
 6     @RequestMapping(value = "/helloworld")
 7     public String HelloWorld() {
 8         return "Hello World";
 9     }
10 }

此时前端请求路径为:如下图,项目运行结果


(2)@ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据

controller类的方法可以通过返回值进行页面跳转,如果采用@ResponseBody则使该方法直接返回数据给前端

@ResponseBody注解可以直接放在controller类上,则表示该类所有方法返回值都是给前端的数据

 1 @Controller
 2 @ResponseBody
 3 @RequestMapping(value = "/student")
 4 public class StudentController {
 5 
 6     @RequestMapping(value = "/helloworld")
 7     public String HelloWorld() {
 8         return "Hello World";
 9     }
10 }

此时项目运行结果与(1)相同


(3)@RestController相当于@ResponseBody + @Controller合在一起的作用,是一种简洁写法。

1 @RestController
2 @RequestMapping(value = "/student")
3 public class StudentController {
4 
5     @RequestMapping(value = "/helloworld")
6     public String HelloWorld() {
7         return "Hello World";
8     }
9 }

此时项目运行结果与(1)相同

3.初始页面

SpringBoot默认的页面映射路径(即模板文件存放的位置)为“classpath:/templates/*.html”。静态文件路径为“classpath:/static/”,其中可以存放JS、CSS等模板共用的静态文件

SpringBoot整合了springmvc的拦截功能,拦截了所有的请求。默认放行的资源是:resources/static/ 目录下所有静态资源。(不走controller控制器就能直接访问到资源)html页面如果放在resources/templates目录下,则需要走controller控制器,controller放行,允许该资源访问,该资源才能被访问到。否则就会报404错误

此时resources/staticresources/templates 目录下都为空

我们在resources/static目录下新建HTML文件index.html,此时目录结构

index.html文件内容

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>初始页面</title>
 6 </head>
 7 <body>
 8 欢迎来到SpringBoot
 9 </body>
10 </html>

项目运行访问初始页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值