自己制作网站的步骤,做网站用什么软件最简单,效果图怎么收费,宣传片拍摄如何计费SpringBoot基础入门SpringBoot项目创建方式Idea创建SpringBoot官网创建基于阿里云创建项目手工搭建SpringBoot启动parentstarter引导类内嵌tomcat基础配置属性配置配置文件分类yaml文件yaml数据读取整合第三方技术整合JUnit整合MyBatis整合Mybatis-Plus整合DruidSpringBoot是由…
SpringBoot基础入门SpringBoot项目创建方式Idea创建SpringBoot官网创建基于阿里云创建项目手工搭建SpringBoot启动parentstarter引导类内嵌tomcat基础配置属性配置配置文件分类yaml文件yaml数据读取整合第三方技术整合JUnit整合MyBatis整合Mybatis-Plus整合DruidSpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化 Spring应用的初始搭建以及开发过程。
Spring程序缺点 依赖设置繁琐配置繁琐 SpringBoot程序优点 起步依赖简化依赖配置自动配置简化常用工程相关配置辅助功能内置服务器……
SpringBoot项目创建方式
Idea创建
1.创建新模块选择Spring Initializr并配置模块相关基础信息 2.选择当前模块需要使用的技术集 3.开发控制器
RestController
RequestMapping(/books)
public class BookController {GetMappingpublic String getById(){System.out.println(Springboot is running....);return Springboot is running....;}
}4.运行自动生成的Application类
最简SpringBoot程序所包含的基础文件
pom.xml文件
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.10/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.itheima/groupIdartifactIdspringboot_01-01_quickstart/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot_01-01_quickstart/namedescriptionspringboot_01-01_quickstart/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/projectApplication类
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}Spring程序与SpringBoot程序对比 总结
开发SpringBoot程序可以根据向导进行联网快速制作SpringBoot程序需要基于JDK8进行制作SpringBoot程序中需要使用何种功能通过勾选选择技术运行SpringBoot程序通过运行Application程序入口进行
注意 基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构
SpringBoot官网创建
1.进入SpringBoot官网找到Spring Initializr 2.进入创建页面创建工程并保存项目解压项目通过IDE导入项目。
基于阿里云创建项目
之前https://start.spring.io/很容易网速慢通过阿里云来提升速度
手工搭建
1.手动导入坐标
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0
xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd
modelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.4/version/parentgroupIdcom.itheima/groupIdartifactIdspringboot_01_03_quickstart/artifactIdversion1.0-SNAPSHOT/version
dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency
/dependencies
/project2.手工创建引导类
package com.itheima;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class,args);
}
}tips隐藏文件避免页面杂乱 Setting → File Types → Ignored Files and Folders 输入要隐藏的文件名支持*号通配符 回车确认添加
SpringBoot启动
parent
parent元素是一种Maven的继承机制用于指定项目的父级依赖。它提供了一个基础配置包括默认的插件、依赖和配置信息。子项目可以通过继承父项目的pom.xml文件来使用相同的配置和依赖项从而减少了代码冗余和重复配置的工作量(仅定义未使用)。 使用Spring Boot的parent元素可以让我们更方便地使用Spring Boot提供的各种功能和依赖库同时避免多个依赖使用相同技术时出现依赖版本冲突。 继承parent的形式也可以采用引入依赖(spring-boot-dependencies)的形式实现效果
starter
starter是一种依赖库它提供了一组预配置的依赖项和默认设置以满足特定的需求。这些starters通常包含了常见的依赖项例如Spring框架核心、数据库驱动程序、Web容器等并为它们提供了默认的配置信息以帮助我们快速地开始项目开发。 使用Spring Boot的starter可以简化项目配置和管理避免许多麻烦和复杂性并提高开发效率和生产力。例如如果我们要创建一个基于Web的Spring Boot应用程序可以使用Spring Boot Web Starter来获取所需的所有依赖项和默认配置从而减少了许多手动配置的工作量。
starter SpringBoot中常见项目名称定义了当前项目使用的所有依赖坐标以达到减少依赖配置的目的 parent 所有SpringBoot项目要继承的项目定义了若干个坐标版本号依赖管理而非依赖以达到减少依赖冲突的目的spring-boot-starter-parent各版本间存在着诸多坐标版本不同
实际开发
使用任意坐标时仅书写GAV中的G和AV由SpringBoot提供除非SpringBoot未提供对应版本V如发生坐标错误再指定Version要小心版本冲突
引导类
SpringBoot的引导类是Boot工程的执行入口运行main方法就可以启动项目但是未启动web服务器 SpringBoot工程运行后初始化Spring容器扫描引导类所在包加载bean。
SpringBootApplication
public class Springboot01QuickstartApplication {public static void main(String[] args) {SpringApplication.run(Springboot01QuickstartApplication.class, args);}
}内嵌tomcat
内嵌Tomcat工作原理是将Tomcat服务器作为对象运行并将该对象交给Spring容器管理。 变更内嵌服务器思想是去除现有服务器添加全新的服务器 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusion!--排除tomcat依赖--groupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactId/exclusion/exclusions/dependency
!--引入jetty版本由start控制--
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jetty/artifactId
/dependency内置服务器
tomcat(默认)apache出品粉丝多应用面广负载了若干较重的组件jetty更轻量级负载性能远不及tomcatundertow负载性能勉强跑赢tomcat
基础配置
属性配置
SpringBoot(官方文档)默认配置文件application.properties通过键值对配置对应属性。
SpringBoot中导入对应starter后提供对应配置属性书写SpringBoot配置采用关键字提示形式书写
修改服务器端口server.port80 关闭运行日志图标spring.main.banner-modeoff
配置文件分类
SpringBoot提供了多种属性配置方式
主流格式为yml层级编写避免重复写。
SpringBoot配置文件加载顺序
application.properties application.yml application.yaml不同配置文件中相同配置按照加载优先级相互覆盖不同配置文件中不同配置全部保留
解决配置文件自动提示消失 1.Setting → Project Structure → Facets选中对应项目/工程 2.Customize Spring Boot 3.选择配置文件
yaml文件
YAMLYAML Ain’t Markup Language一种数据序列化格式
优点 容易阅读容易与脚本语言交互以数据为核心重数据轻格式 YAML文件扩展名 .yml主流.yaml yaml语法规则
大小写敏感属性层级关系使用多行描述每行结尾使用冒号结束使用缩进表示层级关系同层级左侧对齐只允许使用空格不允许使用Tab键属性值前面添加空格属性名与属性值之间使用冒号空格作为分隔#表示注释核心规则数据前面要加空格与冒号隔开
字面值表示方式
boolean: TRUE #TRUE,true,True,FALSE,falseFalse均可
float: 3.14 #6.8523015e5 #支持科学计数法
int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~ #使用~表示null
string: HelloWorld #字符串可以直接书写
string2: Hello World #可以使用双引号包裹特殊字符
date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:3108:00 #时间和日期之间使用T连接最后使用代表时区数组表示方式 在属性名书写位置的下方使用减号作为数据开始符号每行书写一个数据减号与数据间空格分隔
subject:- Java- 前端- 大数据
enterprise:name: itcastage: 16subject:- Java- 前端- 大数据
likes: [王者荣耀,刺激战场] #数组书写缩略格式users: #对象数组格式- name: Tomage: 4- name: Jerryage: 5
users: #对象数组格式二-name: Tomage: 4-name: Jerryage: 5 #对象数组缩略格式
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]yaml数据读取
1.使用Value读取单个数据属性名引用方式${一级属性名.二级属性名……} 2.在配置文件中可以使用属性名引用方式引用属性避免数据都需要修改
# 使用%{属性名}引用数据
daseDir: c\windows
tempDir: ${daseDir}\temp3.属性值中如果出现转移字符需要使用双引号包裹
# 转义字符用双引号包起来
tempDir1: ${daseDir}\temp \t1 \t2
#dir1:c\windows emp 1 24.封装yaml中的全部数据到Environment对象 //使用自动装配将所有的数据封装到一个对象Environment中Autowiredprivate Environment env;5.自定义对象封装指定数据
# 创建类用于封装性下面的数据
# 由spring加载数据到对象中一定要告诉spring加载这组信息
# 使用时候从spring中直接获取信息使用
datasource:driver: com.mysql.jdbc.Driverurl: jdbc:mysql://172.16.36.214:3306/r_framework?useUnicodetruecharacterEncodingUTF-8zeroDateTimeBehaviorconvertToNullserverTimezoneAsia/ShanghaiuseSSLfalseusername: yushuipassword: Yushui.123//1.定义数据模型(实体类)对yaml文件中对应的数据
//2.定义为spring管控的bean
Component
//3.指定加载的数据
ConfigurationProperties(prefix datasource)
public class MyDataSource {//属性名与名称一致private String driver;private String url;private String username;private String password;....}整合第三方技术
整合JUnit
Spring Initializr默认整合Junit
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope
/dependency测试类
//设置JUnit加载的SpringBoot启动类
SpringBootTest(classes Application.class)
class ApplicationTests {//使用自动装配的形式添加要测试的对象Autowiredprivate UserService userService;Testvoid contextLoads() { }
}测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类。
整合MyBatis
1.创建新模块选择Spring初始化并配置模块相关基础信息 选择当前模块需要使用的技术集MyBatis、MySQL 2.设置数据源参数
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: root3.定义数据层接口与映射配置
Mapper
public interface UserDao {Select(select * from user)public ListUser getAll();
}4.测试类中注入dao接口测试功能
SpringBootTest
class Springboot08MybatisApplicationTests {Autowiredprivate BookDao bookDao;Testpublic void testGetById() {Book book bookDao.getById(1);System.out.println(book);}
}注意 SpringBoot版本低于2.4.3(不含)Mysql驱动版本大于8.0时需要在url连接串中配置时区
jdbc:mysql://localhost:3306/ssm_db?serverTimezoneUTC或在MySQL数据库端配置时区解决此问题 MySQL的安装目录my.ini文件且打开它找到 mysqld在该下面添加 default-time_zone ‘8:00’,然后保存。
整合Mybatis-Plus
导入坐标由于SpringBoot中未收录MyBatis-Plus的坐标版本需要指定对应的Version dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.2/version/dependency2.定义数据层接口与映射配置继承BaseMapper
Mapper
public interface UserDao extends BaseMapperUser {
}3.其他同SpringBoot整合MyBatis
整合Druid
1.导入Druid对应的starter
dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.6/version
/dependency2.变更Druid的配置方式
spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezoneUTCusername: rootpassword: root整合任意第三方技术
导入对应的starter配置对应的设置或采用默认配置