1.环境介绍
1.IDEA环境搭建
https://blog.csdn.net/qq_16804847/article/details/107696409?spm=1001.2014.3001.5502
2.准备工作
2.1 创建空工程
2.2 基本环境配置
2.2.1 JDK
2.2.2 Maven
(每次IDEA工作目录切换 Maven需要重新切换环境) 推荐使用3.6以上版本
1.配置软件路径配置
2.settings文件配置
3.仓库路径配置
2.2.3 File Encoding
2.3 创建Maven工程
2.框架整理
2.1 SpringBoot入门案例
2.1.1 POM.xml文件说明
1. parent标签: 当前SpringBoot的版本所有相关依赖的版本进行了定义.
2. dependencies标签: 需要哪个依赖哪个.
3. build标签: 项目打包发布 如果没有build标签运行时 报错:没有主清单信息.
<!--集中定义版本号-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--依赖: 项目中需要添加什么功能,则依赖什么jar包.-->
<dependencies>
<!--引入SpringMVC功能-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringBoot的测试功能-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--SpringBoot核心机制:“开箱即用”
只需导入特定的jar包文件 则可以直接使用其中的功能
根本原因:SpringBoot是对框架的简化,内部进行了扩展,无需程序员操作
-->
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
</dependencies>
<!--该插件是SpringBoot项目打包时必须添加的.
如果没有该插件 则导致jar包不能运行
-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.1.2 配置文件格式
1.YML配置文件
1. 数据结构 key-value结构
2. 写法 key:(空格) value !!!!
3. YML文件有层级结构 注意父子级语法的缩进
4. YML文件程序默认读取时采用UTF-8编码
server:
port: 8092
servlet:
context-path: /
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#SpringBoot整合MybatisPlus
mybatis-plus:
#设置别名包
type-aliases-package: com.jt.pojo
#加载映射文件
mapper-locations: classpath:/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
#打印SQL语句
logging:
level:
com.jt.mapper: debug
2.properties配置文件
1.properties语法 是Key-Value结构
1.1 基本写法 key=value 不要写多余的空格
1.2 properties 本身就是字符串的数据类型,所以无需添加'号
1.3 properties IDEA设定UTF-8 是IDEA读取的字符集编码
程序通过IO进行读取时,默认编码ISO-8859-1,所以中文必定乱码 需要设定字符集.
#开发环境
# file.localDirPath=F:/images
#生产环境
file.localDirPath=/usr/local/src/images
file.preURLPath=http://image.jt.com
2.1.3 为属性赋值
将数据信息交给Spring容器管理,之后由@Value注解动态实现赋值操作
2.1.4 Lombok操作
动态生成get/set/toString等方法
常见注解:
@Data //一般为属性赋值 get/set方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
@Accessors(chain = true) //开启链式加载(重写set方法)
lombok有效期:编译期有效
2.1.5 SpringBoot测试类机制
2.2 Mybatis知识整理
2.2.1 Mybatis注入说明
1.Spring容器通过包扫描注解@MapperScan为Mybatis的所有的接口创建代理对象
代理对象:
1.JDK动态代理 要求必须有接口
2.CGLIB动态代理 有无接口都可以,但是代理对象是被代理者的子类
2.Mybatis常用注解
@Select("")
@Insert("") //新增时使用"更新"
@Update("") //更新
@Delete("") //删除
2.2.2 MP相关介绍
周边框架:JPA直接操作JDBC的简易框架
MP核心思想:以对象的方式操作数据库
MP基本用法:
- 导入jar包文件
<!--spring整合mybatis-plus MP中包含了mybatis的包所以将原来的包删除 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
- 思想: 使用对象的方式操作数据库
- 编辑POJO 实现对象与数据表的映射关系.
1.POJO应该与数据库中的表完成映射
2.POJO中的属性与表中的字段一一映射.
注解:
1. @TableName(“demo_user”) //实现对象与表名映射
2. @TableId(type = IdType.AUTO) //设定主键自增
3. @TableField(“name”) //实现属性与字段映射.
规则: 如果属性与字段的名称一致,则注解可以省略
- 继承公共的接口,获取常用的CURD操作.
- 实现数据操作.
注意:
2.3 前后端调用
2.3.1 Ajax介绍
理念:局部刷新,异步访问
Ajax为什么可以异步:组件1.客户端 组件2.Ajax引擎 组件3.后端服务器
请求类型:查询GET 修改PUT 删除DELETE 新增POST
Ajax请求参数 与SpringMVC接收 方式处理
2.3.2 跨域问题
1.同源策略 请求协议://域名:端口号 应该都相同
2.什么是跨域 Ajax请求网址与浏览器网址违反同源策略
3.如何解决跨域 跨域资源共享CROS机制. 后端服务器通过响应头信息 添加允许访问的域名地址.