swagger配置
swagger整合作用:swagger用来生成接口文档
整合步骤
添加依赖
12345678910111213141516<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version></dependency><!-- swagger增强 --><dependency> <groupId>com.gith ...
Mybaisplus相关
此为mybatisplus的使用方式 mybatis 点击 进入
QueryWrapper构造器方式QueryWrapper构造器是来构建where条件的,所以只有删改查才会用到
步骤1
mapper类继承 BaseMapper<>类
123@Mapperpublic interface PojoMapper extends BaseMapper<Pojo> {}
步骤2
serviceimple类调用方法
查询12345678910//创建queryWrapper对象QueryWrapper<Pojo> queryWrapper = new QueryWrapper<>();//传入有值类条件queryWrapper.eq("表字段名","值");//传入无值类条件 表字段名 is not nullqueryWrapper.isNotNull("表字段名")//传入无值类条件 表字段名 is nullqueryWrapper.isNull(" ...
jwt理解
组成java web token简称jwt
组成
头部(header)
头部存 类型和加密算法
1234{ “typ”: “JWT”, “alg”: “HS256” }
有效载荷(playload)
实际需要保存的参数,如token签发者、签发时间、到期时间,以及如用户名之类的后续需要用到的参数。 注:如密码等涉及到安全的信息不宜放进去
签名(signature)
头部和有效载荷加上密钥通过头部里面的加密算法进行加密后得到
头部与有效载荷均通过base64进行加密
应用环境二次登录,即第一次登录后,关闭页面,一段时间内重新访问不需要重新登录
原实现方式:由服务器存储登录信息,当第二次请求过来时判断以前是否登录过,若是则直接访问
客户端请求
服务器产生登录信息
登录信息传给客户端,客户端存储在cookie中
客户端第二次访问时带cookie请求
服务器端进行校验
注:弊端,由于登录信息存在session中,即存在内存中会占用服务器资源
现解决办法:第一次登录请求,服务器产生token,存储客户端,第二次访问校验token
客户端请求
服务端 ...
IOC和AOP
控制反转(IOC)分为控制和反转
控制:对象的创建交给了spring容器,在spring创建对象的过程中会根据 bean来创建对象,也可以说一个bean就是一个对象
反转:主动权由程序员交给了用户,用户可以选择调用;传统的是 在程序中使用new来创建对象然后使用对象调用方法, 现为 spring容器创建对象然后传入对象,不需要更改原程序,原程序只使用传入的对象(此种方式在springboot中非常常见,如重写拦截器)
也叫依赖注入,即将 需要生成对象的类 注入,由spring容器自动创建,创建实例的方式,是通过反射的方式获取类,然后实例化后注入
xml配置方式
实际service层
12345public interface UserService { public void origdothings();}
1234567public class UserServiceImp implements UserService{ public void origdothings() { System.out.p ...
mysql8 免安装配置
解压压缩包
配置环境变量 path中加入mysql的bin路径
myql8解压根路径下新建 my.ini文件,写入以下(my.ini为配置文件),其中mysql的安装路径以及数据库的数据存放路径要修改相应的位置,若以前解压目录下存在data文件夹,可以删除
12345678910111213141516171819202122232425[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 绑定IPv4bind-address=0.0.0.0# 设置端口号port=3306# 设置mysql的安装目录,即解压目录basedir=D:\\uwork\\mysql\\mysql-8.0.19-winx64# 设置数据库的数据存放目录datadir=D:\\uwork\\mysql\\mysql-8.0.19-winx64\\data# 设置允许最大连接数max_connections=200# 设置允许连接失败次数max_connect_errors=10# 设置服务端的默认字符集character-set-serv ...
mysql数据库连接
数据库连接代码
12345678910111213141516171819202122232425262728293031323334353637public static void main(String[] args) { Connection con; Statement stm = null; ResultSet rs = null; //根据导入的包中的Driver路径来写 String driver = "com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/cloud_data?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=true"; String username="root"; String password="123456 ...
消息队列理解
消息队列两种模型
P2P点对点方式
消息先进先出,未被消费的消息存在消息通道内
发布订阅模式
发布者发布一条消息,订阅者实时接收消息
两者区别
第一种不用担心接收方关机宕机等问题,可以续传
第二种为实时接收,接收方只有发布者在消息广播期间才能收到消息,一旦发布者不再广播,接收者是不会收到的
web相关复习
javaweb 三大组件 Servlet,Filter,Listener
Servlet生命周期四个阶段:
实例化:调用构造方法
初始化:调用init()方法
处理请求:调用service()方法
销毁:调用destroy()方法
使用Servlet方式实现方式:继承httpServlet类,重写doPost()、doGet()方法;
实现原理:HttpServlet的service(HttpServletRequest,HttpServletResponse)方法会去判断当前请求是GET还是POST,如果是GET请求,那么会去调用本类的doGet()方法,如果是POST请求会去调用doPost()方法
Jsp和Servlet
Jsp就是后缀为jsp的文件,即是HTML中写java代码
Servlet 在javaweb开发中主要的功能为 处理请求和发送响应
两者的区别是
Jsp是在HTML中写java代码 ,servlet是java代码中写HTML
Jsp是先部署后编译,servlet是先编译后部署
Fileter 过滤器使用Filter方式实现方法:实现Filte ...
反射
反射解释:反射是对编译成的class文件进行解析,拿到其属性和方法
首先都是获取类
1234567//第一种,通过类名Class 新名 = 类名.class;//第二种,通过全类名Class 新名 = Class.forName("包名.类名");//第三种,通过对象获得根据类new一个对象;Class 新名 = 对象.getClass();
拿到属性
通过field得到属性的类型和名字 得到方法 用method
123456789101112//得到某个类的所有属性Field[] fields = 新名.getDeclaredFields();//得到某个类的带public的所有属性,包括其父类、父类的父类//Field[] fields = 新名.getFields();//遍历所有属性并打印名字for(Fiedl field : fields){ System.out.println(field.getName();}//通过属性名字得到属性Field 新属性名 = 新名.getDeclaredFields(" ...
设计模式理解
单例设计模式解释:在开发中,当一个类完全不需要有多个实例时,可以使用单例模式来保证一个类只有一个对象。 实际操作为 私有化构造函数
如 票务系统,要保证票数始终同步,卖票的对象可以使用单例模式
饿汉模式
123456789101112131415public class SingletonDemo1 { //饿汉单例模式,在声明变量的时候就直接实例化对象了 //私有化构造函数 private SingletonDemo1() { } //创建实例,并私有化 private static SingletonDemo1 instance = new SingletonDemo1(); //将实例返回 public static SingletonDemo1 getInstance(){ return instance; };}
懒汉模式
1234567891011121314151617public class SingletonDemo2 ...