- 博客(44)
- 收藏
- 关注
原创 2021-09-05
halo学习第一天@Valid @Size @NotBlank 等校验注解用法及扩展新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入@Valid @Size @NotBlank 等校验注解用法及扩展注解名称功
2021-09-09 17:48:45
175
原创 swagger的基本用法
1.导入swagger的依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <
2020-09-23 18:56:58
290
原创 springboot自定义拦截器
1、实现HandlerInterceptor接口或继承HandlerInterceptorAdapter类自定义拦截器本文采用实现HandlerInterceptor接口import org.apache.logging.log4j.util.Strings;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import java
2020-07-28 15:54:42
137
原创 springboot自定义过滤器的两种方式
1、过滤器是什么过滤器是基于servlet技术实现的,在web项目开发中可以帮助我们过滤一些指定的url,对其进行一些特殊处理作用:过滤掉一些不需要的东西,如错误请求可以修改请求和响应的内容过滤未登录的用户2、过滤器实现的两种方法方法一:创建一个过滤器,加上@WebFilter注解项目结构:MyFilter代码:import org.springframework.core.annotation.Order;import javax.servlet.*;import javax
2020-07-25 15:34:02
1161
原创 springboot热部署
1、导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>2、配置plugin<build> <plugins>
2020-07-24 19:58:23
99
原创 springboot多环境配置
application.propertiesspring.profiles.active=dev #默认配置文件application-dev.properties#开发环境server.port=8080application-test.properties#测试环境server.port=8081application-prod.properties#生产环境server.port=8082中断target输入java -jar springboot-profile-0
2020-07-24 18:49:31
50
原创 springboot静态工具类读取配置文件
1、application.yml文件#jwt秘钥jwt: secretKey: zzzzzzzzzz issuer: yingxue.com2、TokenSettings类package com.scitech.entity;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Comp
2020-07-24 16:57:06
1084
原创 springboot配置文件读取
1.配置类内容比较简单的类可以采用配置类举例:@Datapublic class Person { private String name; private BigDecimal salary; private int age; private String sex; }配置文件可以采用application.properties或者application.yml,下面两种二选一application.properties文件person.name=zhan
2020-07-24 16:15:54
68
原创 泛型类的注意事项
1、泛型类的注意事项1.泛型类如果没有指定具体类型,此时操作类型为Object2.泛型的类型参数只能是类类型,不能是基本数据类型 : Employee < int > e = new Employee<>(); //错误3.泛型类型在逻辑上可以看成多个不同类型,但是实际上都是相同类型Employee<Integer> e1 = new Employee<>();Employee<String> e2 = new Employee<&
2020-07-17 21:00:20
127
原创 spring的容器配置
1、基于注解的配置<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/sc
2020-06-16 19:08:53
145
原创 java解决线程安全问题的三种方法
为什么会出现线程安全问题?先来运行一段程序(售票系统),采用Runnable接口,代码如下:public class MyRunnable implements Runnable { private int ticket = 10; @Override public void run() { while (true){ if (ticket > 0){ try {
2020-06-14 13:54:26
910
1
原创 mybatis基本环境配置
1. 创建maven并导入坐标在pom.xml文件中添加如下代码 <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> &
2020-06-08 11:00:28
116
原创 request
1.request和response对象的原理: * request和response对象是由服务器创建的 * request对象使用来获取请求消息的,response对象是用来设置响应消息的 2.request对象的继承结构 ServletRequest —— 接口 | HttpServletRequest —— 接口 | org.apache.catalina.connector.RequestFacade —— 类(Tomcat编写)3.request功能 .
2020-06-07 11:45:47
95
原创 自动装箱与拆箱
装箱:从基本数据类型转换为对应的包装类对象拆箱:从包装类对象转换为对应的基本数据类型/** * 装箱: * * 构造方法: * Integer(int value) 构造一个新分配的 Integer对象,该对象表示指定的 int值。 * Integer(String s) 构造一个新分配 Integer对象,表示 int由指示值 String参数。 * * 静态方法: * static Integer valueOf(int i) 返回一个 Integer指定的 int值
2020-06-07 09:02:55
62
原创 HTTP协议概述
概念:Hyper Text Transfer Protocol 超文本传输协议定义了客户端与服务器通信时,发送数据的格式特点:1.基于TCP/IP协议2.默认端口号:803.基于请求/响应模型:一次请求对应一次响应4.无状态的:每次请求之间相互独立,不能交互数据请求消息的数据格式:1.请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求方式:HTTP协议有7中请求方式,常用的有两种 GET: 请求参数在请求行中,在url后
2020-06-06 22:15:54
78
原创 内部类之重名问题
1.访问重名的成员变量public class Outer { int num = 10; public class Inner{ int num = 20; public void method(){ int num = 30; System.out.println(num); //30 System.out.println(this.num); //20
2020-06-04 11:46:18
413
原创 内部类使用方法和调用
定义格式:修饰符 class 外部类名称 { 修饰符 class 内部类名称{ //... } //...}分类:1.成员内部类2.局部内部类(包含匿名内部类)注意:内用外,随意访问,外用内,必须调用内部类对象使用方法1.间接方式:在外部类方法中创建内部类对象,使用内部类方法,main方法中值调用外部类方法2.直接方式:外部类名称.内部类名称 对象名 = new 外部类名称(). new 内部类名称;public class Body { //外部类 public
2020-06-03 23:24:25
2331
原创 Java的权限修饰符
四种权限修饰符: public > protected > (default) > private同类中 √ √ √ √同一个包中 √ √ √ ×不同包子类 √ √ × ×不同包非子类 √ × × ×
2020-06-03 21:20:44
66
原创 final关键字
1.final修饰类用final关键字修饰的类不能有任何子类public final class 类名称{ //...}2.final修饰方法用final关键字修饰的方法是最终方法,不能够被覆盖重写public final 返回值类型 方法名(参数列表){ //.... }ps: 对于类和方法来说,abstract和final关键字不能同时使用3.final修饰局部变量用final关键字修饰的局部变量不能改变,只能赋值一次!1.对于基本类型来说,不能改变指的是变量当中的数据不
2020-06-03 20:55:43
67
原创 向上转型与向下转型
向上转型:父类引用指向子类对象向上转型是安全的,没有问题,但无法调用子类的特有内容。把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。赋值之后,父类型的引用就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。...
2020-06-03 15:16:28
440
原创 多态
多态:父类引用指向子类对象格式:父类名称(接口名称) 对象名 = new 子类名称(实现类名称);访问成员变量的两种方式:1.直接通过对象名称访问成员变量,等号左边是谁,优先用谁,没有则向上找,不能向下找2.间接通过成员方法访问成员变量,该方法属于谁,优先用谁,没有则向上找,不能向下找访问成员方法的规则:看等号右边 new 的是谁,就优先调用谁,没有则向上找,不能向下找public class Animal { int id = 10; public void method
2020-06-03 11:35:48
54
原创 接口的继承问题
1.类与类之间是单继承的,直接父类只能有一个2.类与接口之间是多实现的,一个类可以实现多个接口3.接口与接口之间是多继承的ps:1.多个父接口当中抽象方法重复没关系2.多个父接口当中的默认方法重复,就必须在子接口中覆盖重写该默认方法,且带【default】关键字public interface InterfaceA { public abstract void absMethodA(); public abstract void absMethod(); //相同抽象方法
2020-06-03 10:30:11
233
原创 接口
接口是多个类的公共规范,是一种引用类型,其中有抽象方法:1.接口不能直接使用,必须要有一个实现类来实现该接口2.接口的实现类必须实现(覆盖重写)接口中所有的抽象方法3.创建实现类的对象进行使用ps:1.如果实现类中没有覆盖重写接口中全部的抽象方法,那这个实现类必须是抽象类2.接口里不能有静态代码块和构造方法3.一个实现类可以实现多个接口4.如果多个接口里有重复的抽象方法,那么实现类只需要覆盖重写一个即可。特别的是,如果多个接口里有重复的默认方法,那么实现类必须重写重复的默认方法5.一个实现
2020-06-03 10:10:06
77
原创 抽象方法与抽象类
抽象方法:加上abstract关键字,然后去掉大括号抽象类:抽象方法所在的类就抽象类,加abstract关键字如何使用抽象类和抽象方法:1.抽象类不能直接创建对象,必须用子类来继承抽象父类,通过子类对象进行使用2.子类必须覆盖重写(实现)抽象父类中所有的抽象方法,否则编译无法通过,除非该子类也是抽象类3.抽象类可以有构造方法,是供子类创建对象时,初始化父类成员使用4.抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类举例子:public abstract class Animal { /
2020-06-02 18:30:27
78
原创 继承三——this关键字的使用方法
1.在本类的成员方法中,访问本类的成员变量public class Zi extends Fu{ int id; public void method(int id){ this.id = id; }}2.在本类的成员方法中,访问本类的另一个成员方法public class Zi extends Fu{ public void method1(){ System.out.println("这是方法一");
2020-06-02 16:18:23
86
原创 继承二——父子类构造方法的访问特点
1.子类构造方法中有一个默认隐含的**super()**调用,有父才有子,先调用父类构造方法,后执行子类构造方法public class Fu { public Fu(){ System.out.println("这是父类构造方法"); }}public class Zi extends Fu{ public Zi() { System.out.println("这是子类构造方法"); }}public class testI
2020-06-02 16:06:26
118
原创 覆盖重写规则
首先搞清楚一个概念1.重写(Override):在继承关系中,方法名称一样,参数列表也一样2.重载(Overload):方法名称一样,参数列表不一样覆盖重写特点:创建的子类对象,优先用子类对象ps:1.必须方法名称一样,参数列表也一样2.建议利用@Override关键字进行覆盖重写3.子类方法的返回值必须【小于等于】父类方法的返回值范围举个例子:java.lang.Object类(祖宗类)是java.lang.String的父类public class Fu { public
2020-06-02 10:10:17
132
原创 成员方法与成员变量继承规则
成员变量继承规则在父子类的继承关系中,如果成员变量重名,则创建子类对象时,有两种方式:1.通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找2.间接通过成员方法访问成员变量,调用父类成员方法访问重名的父类成员变量public class Fu { public int id = 1; int id_fu = 10; public void methodFu(){ System.out.println(id); }}public c
2020-06-02 09:45:59
614
原创 数据库连接池
数据库连接池概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,就会申请一些连接对象,当用户访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象返还给容器。优点:1.节约资源2.用户访问高效、实现:1.javax.sql 包下的 DataSource接口获取方法:getConnection()归还方法:若从数据库连接池中获取的连接,则调用Connection.close()不会关闭,而是归还连接。 2.一般由数据库厂商来实现 C
2020-06-01 22:57:49
63
原创 数据库的子查询
staff表department表1、单行单列:#子查询结果作为条件,使用运算符去判断。#查询小于平均工资的员工信息select * from emp where salary < (select avg(salary) from emp);2、多行单列#使用运算符in进行判断#查询在人力资源以及销售部门的员工信息SELECT * FROM staff WHERE dep_id IN (SELECT id FROM department WHERE NAME IN ("人力资
2020-05-30 20:41:10
144
原创 数据库的设计
数据库的设计1.多表之间的关系1.一对一(了解):在任意一方添加唯一外键指向另一方的主键2.一对多(多对一):在多的一方建立外键,指向一的一方的主键3.多对多:需要借助第三张中间表,中间表至少包含两个字段,这两个字段作为中间表的外键,分别指向两张表的主键2.数据库设计的范式1.多表之间的关系...
2020-05-29 09:22:07
48
原创 数据库三之查询
查询基本语法select * from 表名;基本语法: select 字段名称列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定#举个例子,下面为创建表的代码CREATE TABLE class( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL, -- name非空 addr
2020-05-28 22:54:57
101
原创 数据库二:DML、DQL:增删改查表的数据
DML、DQL:增删改查表的数据一、DML:增删改1、添加insert into 表名(列名1, 列名2, ...列名n) values (值1,值2,...,值n);2、删除delete from 表名 [where条件];#删除整个表(然后再创建一张一模一样的表)TRUNCATE TABLE 表名;3、修改update 表名 set 列名1=值1, 列名2=值2,..., 列名n=值n [where条件];二、DQL:查询1、排序查询语法: order by 排序字段
2020-05-28 19:43:57
88
原创 数据库的基本操作之 DDL:操作数据库、表
DDL:操作数据库、表1、操作数据库:CRUD1、C(Create):创建create database 数据库名称; #创建数据库:#创建数据库db,并判断是否存在,且指定字符集为gbk:create database if not exists db character set gbk;2、R(Retrieve): 查询#查询所有数据库名称show databases;#查询某个数据库字符集show create database 数据库名称;3、U(Update):修改
2020-05-28 16:21:03
183
原创 字符串常量池
字符串常量池直接用双引号的字符串才在字符串常量池中。1、对于基本类型来说 ,== 是进行数值比较。2、对于引用类型来说, == 是进行地址比较public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; char[] c = {'a', 'b', 'c'}; String str3 = new String(c);
2020-05-27 23:43:24
40
原创 random小例子
random小例子package cn.day01.demo01;import java.util.Random;public class RandomDemo { Random r = new Random(); int num = r.nextInt(255); //[0,255) 左闭右开 int num2 = r.nextInt(10) + 1; //[1,10] System.out.println(num); Sy
2020-05-27 22:58:11
118
原创 switch语句使用注意事项:
switch语句使用注意事项:1、switch小括号只能是下面几种类型:(1)byte/short/char/int(2)String字符串、enum枚举类
2020-05-27 11:19:01
318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人