SpringSecurity
简介
一般Web应用的需要进行认证和授权
认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户
授权: 经过认证后判断当前用户是否有权限进行某个操作
而认证和授权也是SpringSecurity作为安全框架的核心功能
快速入门
准备工作
和SpringBoot工程整合
添加依赖 pom.xml
1234567891011121314151617181920<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.0</version></parent><dependencies> <dependency> <groupId>org.springframework.boot</group ...
MybatisPlus入门
使用步骤
引入MybatisPlus的起步依赖
12345<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version></dependency>
定义Mapper继承MybatisPlus提供的BaseMapper接口,需要提供泛型为你的泛型
123public interface UserMapper extends BaseMapper<User>{ }
常见注解
MybatisPlus的约定
类名驼峰转下划线作为表名
名为id的字段作为主键
变量名驼峰转下划线作为表的字段名
如果表不满足当前的约定的话,MybatisPlus还提供了注解
@TableName:用来指定表名,类名和表明不一致的时候使用,如果不使用的话会 ...
VO包
当我们给前台传数据的时候,可能不想要将所有的数据项都传给前台,这时候需要使用VO映射类来封装我们的 数据
domain/vo/实体类名字
1234567891011121314151617181920package com.nuyoah.domain.vo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;/** * 当我们返回给前端数据的时候,并不是想要将数据库中的所有数据项都展示出来 * 这时候我们可以使用vo封装我们想要给前台展示的数据 */@Data@NoArgsConstructor@AllArgsConstructorpublic class HotArticleVo { private Long id; private String title; private Long viewCount;}
实体对象转换成VO对象
service/impl/service对象
1234567891011121314151 ...
Lambda表达式
基本格式
1(参数列表)->{代码}
一个接口并且只有一个方法要重写才能使用lambda表达式
例一
创建线程的时候匿名内部类写法
123456new Thread(new Runable() { @Override public void run() { System.out.println("哈哈哈") }}).start();
Lambda表达式
123new Thread(()->{ System.out.println("哈哈哈")}).start();
例二
方法
12345public static int calculateNum(IntBinaryOperator operator){ int a = 10; int b = 20; return operator.applyAsInt(a, b)}
调用
12345678publi ...
Vue快速上手
Vue概念
Vue是一个用于构建用户界面的渐进式框架
Vue两种使用方式
Vue核心包开发
场景:局部模块改造
Vue核心包 & Vue插件 工程化
场景:整站开发
框架:
优点:大大提升开发效率
缺点:需要记忆规则 -> 官网
创建实例
创建Vue实例初始化渲染
步骤:
准备HTML容器
引包-开发版本/生产版本
创建Vue实例 new Vue()
指定配置项 ->渲染数据
el指定挂载点
data提供数据
12345678910111213141516<div id="app"> {{ msg }}</div><script src="../libs/vue.js"></script><script> // 通过引入的Vue包,创建Vue实例对象 const app = new Vue({ // 通过el选择器,指定Vue管理的盒子 ...
Axios
使用方法
123456789101112131415<div class="box"></div><!-- axios库地址: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js 省份数据地址: http://ajax-api.itheima.net/api/province--><!-- 先引入axios库 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script> // axios 基本语法 axios({ url : 'http://ajax-api.itheima.net/api/province' }).then (result =>{ document.querySe ...
WEB API
DOM
DOM
文档对象模型:用来呈现以及与任意的HTML或XML文档交互的API
DOM树
将HTML中的内容以树状的形式直观的显示出来,直观的体现了标签与标签之间的关系
DOM对象
浏览器根据HTML标签生成的JS对象
标签的所有属性都可以在这个对象上找到
获取DOM对象
通过CSS选择器获取对应的标签
document.querySelector获取符合标准的第一个元素
12document.querySelector('CSS选择器')// css选择器: div, #ID .Class
document.querySelectorAll获取符合标准的所有元素
12document.querySelectorAll('CSS选择器')// css选择器: div, #ID .Class
其他方法
document.getElementByID
document.getElementByTagName
document.getElementByClassName
操作元素
内容
i ...
SpringBoot入门
特性
快速创建独立的Spring应用
直接嵌入Tomcat
重点:提供可选的starter,简化应用整合
重点:按需自动配置Spring以及第三方库
提供生产级特性:监控指标,健康检查,外部化配置
无代码生成,无xml
总结:简化开发,简化配置,简化整合,简化部署,简化监控,简化运维
创建示例
创建一个空项目
创建一个module,选择MAVEN
设置POM文件
继承springboot父项目,并引入web相关模块
12345678910111213141516171819202122232425262728293031323334353637<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
准备工作
创建Maven Module
导入依赖
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch ...
MyBatis
对比
JDBC
SQL 夹杂在Java代码中耦合度高,导致硬编码内伤
维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见
代码冗长,开发效率低
Hibernate 和 JPA
操作简便,开发效率高
程序中的长难复杂 SQL 需要绕过框架
内部自动生产的 SQL,不容易做特殊优化
基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。
反射操作太多,导致数据库性能下降
MyBatis
轻量级,性能出色
SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
开发效率稍逊于HIbernate,但是完全能够接受
搭建Mybatis
引入MAVEN依赖
1234567891011121314151617181920212223242526272829303132333435363738<dependencies> <!-- Mybatis核心 --> <dependency> <groupId>org.mybatis& ...