文章目录

  • 1. 了解SpringBoot
  • 2. 第一个SpringBoot程序
  • 3. 理解SpringBoot原理
  • 4. SpringBoot 的配置
  • 5. SpringBoot 集成 MyBatis
  • 6. SpringBoot 开发 Web 应用

1. 了解SpringBoot

原生开发:Servlet + jsp ,十分麻烦,web.xml 或者代码中都会存在大量重复内容;

简化开发 :Spring 里面所有东西都是配置文件,集成很多框架或者做一些大型项目,会导致整个程序和项目十分的臃肿,通篇的配置文件;

简化配置文件 :SpringBoot 就好像Spring的升级版,原来很多东西需要手动配置,现在只需要自动配置!

梳理SSM框架中麻烦之处 :

  • 很多配置文件
  • web.xml、 tomcat 都要配置
  • lib依赖 也需要管理

那么在SpringBoot以上的一切,都不需要配置即可运行!

2. 第一个SpringBoot程序

1、使用IDEA构建一个SpringBoot程序

2、填写Maven项目基本信息

3、勾选启动器(Spring Web) 如果你勾选了这个,相当于帮你自动配置好了Spring和SpringMVC,包括Tomcat!


4、完成之后,等待Maven自动下载所有的依赖,再删除不需要的几个文件夹

最终的目录如下:

5、编写第一个程序

注意:一定要在 SpringBoot 主启动类的同级或者子级目录下,新建包!否则是识别不了的

package com.zz.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){return "Hello,SpringBoot!";}
}

6、启动主启动类,访问测试:http://localhost:8080/hello

拓展:我们可以自定义 banner!
自定义的启动Logo,默认是Spring,可以根据自己喜好进行修改。

(1)我们在 resource 目录下新建一个 banner.txt文件,在这里面写入自己的banner即可

(2)在线网站生成:https://www.bootschool.net/ascii

(3)启动测试看效果

3. 理解SpringBoot原理

1、怎么启动的 ?
一个注解:@SpringBootApplication
一个类:SpringApplication

可以将自动生成的这个主启动类删除,自己手动写一个!
(1)在类上面增加一个@SpringBootApplication注解
(2) 使用SpringApplication的run方法启动

如写一个名为 ZzApplication 的主启动类:

package com.zz;//自己手写一个主启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ZzApplication {public static void main(String[] args) {//run方法的启动SpringApplication.run(ZzApplication.class,args);}
}

2、依赖怎么配置的

思考:我们没有配置tomcat、 没有配置servlet、没有配置spring,这个怎么生效的?
SpringBoot默认有一个 pom.xml ,里面有父依赖以及场景启动器

父依赖:

父依赖作用分析
(1)自动帮你管理依赖,里面包含了几乎常用的所有依赖,如果你需要的依赖在这里面有,你就不要配置了,如果没有再配置
(2)插件和资源过滤的自动管理

启动器:
spring-boot-starter-xx 导入对应场景所需要的类,会自动帮你导入封装了这个场景所需要需要的依赖

官网有所有的启动器:https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/html/using-spring-boot.html#using-boot

4. SpringBoot 的配置

所有的配置都可以在配置文件中配置:

  • application.yml / application.yaml
  • application.properties

properties 是我们传统的配置文件 key = value

yaml 是SpringBoot 推荐的配置文件,功能更加强大

yaml 所有语法:(空格严格要求,缩进严格要求)

# 普通键值对
key: value
name: qinjiang# map/对象
key:k1: v1k2: v3person:name: qinjiangage: 3# 行内写法 {}
person: {name: qinjiang,age: 3}# list/数组
key:- v1- v2pets:- dog- pig- cat# 行内写法
pets: [dog,pig,cat]

5. SpringBoot 集成 MyBatis

注意:MyBatis 所有的包都是自己的,所以要导入自己的依赖

整个项目目录:

1、在pom.xml中添加驱动和依赖

        <!-- 这是自定义的包 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><!-- mysql 驱动 在这不写版本号,默认使用mysql8的版本 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--在这里写的依赖都不需要版本号,因为在父依赖中有!--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

2、编写配置文件 application.yml

spring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:type-aliases-package: com.kuang.pojomapper-locations: classpath:com/kuang/mapper/*.xml

3、测试数据源有没有,在测试类中测试即可

package com.zz;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;@SpringBootTest
class HelloSpringbootApplicationTests {// 自动导入数据源@Autowiredprivate DataSource dataSource;// SpringBoot 2.X 默认集成的是 Hikari@Testvoid contextLoads() throws SQLException {// 查看默认数据源 class com.zaxxer.hikari.HikariDataSourceSystem.out.println(dataSource.getClass());// connectionConnection connection = dataSource.getConnection();System.out.println(connection);// 关闭连接connection.close();}
}

SpringBoot 目前默认的数据源是 class com.zaxxer.hikari.HikariDataSource

4、编写实体类 User

package com.zz.pojo;import lombok.Data;@Data
public class User {private int id;private String name;private String pwd;
}

5、编写接口 UserMapper(使用注解和 XML 都可以)

package com.zz.mapper;import com.zz.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;import java.util.List;@Mapper // @Mapper 标注这是一个Mapper接口
@Repository // 代表持久层
public interface UserMapper {// @Select("select * from user") 注解方式List<User> getUserLists();
}

6、编写接口的配置文件 UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.zz.mapper.UserMapper"><select id="getUserLists" resultType="User">select * from user;</select>
</mapper>

7、编写控制层 MyBatisController

package com.zz.controller;import com.zz.mapper.UserMapper;
import com.zz.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class MyBatisController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/list")public List<User> getUserList(){List<User> userLists = userMapper.getUserLists();return userLists;}
}

8、配置 .xml 文件的资源过滤
由于 .xml 的配置文件没有导出,在pom.xml中配置资源过滤即可

 <resources><resource><filtering>true</filtering><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources>

9、启动主启动类,进行测试

在地址栏输入 http://localhost:8080/list ,页面就显示了数据库中user表的数据

6. SpringBoot 开发 Web 应用

1、资源存放目录说明

static 静态资源

templates 页面,templates只能通过 controller来访问资源文件

resources 也可以存放资源文件

public SpringBoot 源码中找到的,静态资源公共的可以放在这里

测试:


2、Thymeleaf 使用,导入静态资源模板 使用html 编写页面

Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念。

Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。使用thymeleaf创建的html模板可以在浏览器里面直接打开(展示静态数据),这有利于前后端分离。

(1)导入对应maven依赖

<!-- thymeleaf依赖,如果要编写页面一定需要这个依赖  -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(2)编写 html 页面放到 templates 目录下

(3)使用controller 进行跳转

package com.zz.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller  //可以被视图解析器解析
public class IndexController {//只要访问 / 就会跳转到templates目录下的index页面@RequestMapping("/")public String index(){return "index";}@RequestMapping("/user/index")public String userIndex(){return "user/index";}@RequestMapping("/user/list")public String userList(){return "user/list";}
}

(4)启动测试



3、页面传递值

(1)在后端方法中使用 Model 传递值

package com.zz.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.Arrays;@Controller  //可以被视图解析器解析
public class IndexController {@RequestMapping("/")public String index(Model model){model.addAttribute("msg","Hello,SpringBoot!");model.addAttribute("users", Arrays.asList("小猫","小狗"));return "index";}
}

(2)在前端使用 th:xxx 去接收后端传递值,注意:一定要导入头文件约束

普通取值 和 循环遍历

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>首页</h1>
<!-- 普通取值 -->
<p th:text="${msg}"></p><!-- 循环遍历:接收后端传递的 users,遍历每个的结果就是user,可以在这个标签内使用!
th:each="item:items"
-->
<!--写法一-->
<h2 th:each="user:${users}" th:text="${user}"></h2>
<!-- 写法二:行内写法 -->
<h2 th:each="user:${users}">[[${user}]]</h2>
<!--写法三-->
<div th:each="user:${users}"><p th:text="${user}"></p>
</div></body>
</html>

启动测试:

SpringBoot(一)——快速入门相关推荐

  1. Springboot的快速入门

    一.Spring简介 官网:spring.io: Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能. Spring Boot可以帮助我们非常快 ...

  2. SpringBoot系列: RestTemplate 快速入门

    ==================================== 相关的文章 ==================================== SpringBoot系列: 与Sprin ...

  3. SpringBoot快速入门——helloworld(来自官网)

    SpringBoot官网快速入门指南 首先使用SpringBoot官网快速创建可以创建一个小项目 创建完以后点击下面的Generate可以下载一个zip文件,将文件解压到指定位置. 打开idea,新版 ...

  4. springboot创建parent_Spring Boot 开篇:快速入门

    背景 想想之前搭建一个WEB项目,不管项目的功能简单或复杂,都需要哪些步骤: 配置 web.xml,加载 Spring 和 Spring mvc 配置数据库连接.配置 Spring 事务 配置加载配置 ...

  5. SpringBoot详解(一)-快速入门

    SpringBoot详解系列文章: SpringBoot详解(一)-快速入门 SpringBoot详解(二)-Spring Boot的核心 SpringBoot详解(三)-Spring Boot的we ...

  6. SpringBoot约定大于配置的特性解读 SpringBoot快速入门

    SpringBoot约定大于配置 Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的 ...

  7. springboot controller访问不到_Spring Boot 开篇:快速入门

    背景 想想之前搭建一个WEB项目,不管项目的功能简单或复杂,都需要哪些步骤: 配置 web.xml,加载 Spring 和 Spring mvc 配置数据库连接.配置 Spring 事务 配置加载配置 ...

  8. Springboot之YAML快速入门教学

    Java作为高级编译程序的元老,以一处编译到处运行的特点,广受开发者喜爱我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于 ...

  9. SpringBoot | SpringBoot快速入门

    文章目录 SpringBoot快速入门(一) 1.什么是SpringBoot 2.什么是微服务架构 3.第一个SpringBoot程序 4.SpringBoot自动装配原理 (1)Pom.xml (2 ...

最新文章

  1. Nginx其他配置——日志管理、网页压缩、访问控制
  2. 单列多行转单行单列合并oracle_Oracle - 子查询、TOP - N
  3. ubuntu-chmod与chown命令
  4. oracle11g支持xp吗_拔掉U盘前一定需要安全弹出吗?
  5. LINUX学习笔记共五部分
  6. Java基础————理解Integer对象的缓存策略
  7. 高铁车厢女童突然抽搐 护士为防其咬舌将手指放口中
  8. css 获取第一个a标签,CSS-伪类获取除第一个之外的其他子元素
  9. django 1.8 官方文档翻译: 2-6-4 数据库访问优化
  10. 解决eclipse报PermGen space内存溢出异常的问题
  11. SystemCenter2012SP1实践(0)本系列摘要目录
  12. 串口接收到的字符型数据如何转化成数字
  13. flex 注册监听器时传值
  14. 20201016:力扣第210周周赛题解(下)
  15. 爬虫--网络数据采集
  16. 2022上半年朋友圈都在传的10本书,找到了
  17. 三年级计算机课标,三年级信息技术教案上册
  18. 小程序-实现列表- 搜索功能的实现(6)
  19. 前端使用微信sdk上传图片的坑,及万千种方法比较实用的一种,亲测有效
  20. JS检查日期是否为工作日

热门文章

  1. jprofiler分析dump文件_内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)...
  2. golang微服务框架对比_Go语言开发的微服务框架,你了解多少?
  3. 基于深度学习的目标检测方法综述
  4. AtCoder AGC030C Coloring Torus (构造)
  5. oracle 11g r2配置文件,Oracle 11g R2 常用配置与日志的文件位置
  6. php中进制转换,php中进制转换
  7. 项目进度计划表_十大项目管理工具模版~
  8. springcloud分布式事务_Spring Cloud学习资源一网打尽!Awesome Spring Cloud v1.0
  9. 什么是java泛型_java泛型背后是什么
  10. pip更换源 windows10_Conda及Pip换源处理