- 博客(21)
- 收藏
- 关注
原创 JWT(JSON Web Token) 学习笔记(整合Spring Boot)
JWT(JSON Web Token) 学习笔记(整合Spring Boot)1、了解 JWT1.1、什么是 JWT ?1.2、什么时候使用 JWT ?1.3、JWT 的结构?1.3.1、Header1.3.2、PayLoad1.3.3、Signature1.3.4、完整的 JWT1.4、JSON Web 令牌如何工作?1.5、为什么要使用 JWT ?1.5.1、基于传统的 Session 认证2、JWT 的第一个程序(Spring Boot)2.1、引入依赖2.2、创建Token并对其进行签名2.3、根据
2022-02-10 23:02:55
1096
原创 Spring Boot 整合 Spring Security(详细学习笔记)
Spring Boot 整合 Spring Security(详细学习笔记)目录Spring Boot 整合 Spring Security(详细学习笔记)一级目录二级目录三级目录一、什么是 Spring Security ?二、简单的入门案例1、引入 Spring Security 依赖2、创建 HelloController 类3、运行三、3个重要的过滤器1、FilterSecurityInterceptor 过滤器2、ExceptionTranslationFilter 过滤器3、UsernameP
2022-01-30 18:54:27
2496
原创 浅拷贝与深拷贝的实现与详解
浅拷贝与深拷贝java中的数据类型基本数据类型:引用数据类型:什么是浅拷贝?什么是深拷贝?赋值浅拷贝深拷贝clone方式clone浅拷贝clone深拷贝Serializable方式java中的数据类型基本数据类型:java中的基本数据类型有八种( byte、short、int、long、float、double、boolean、char、String ),基本数据类型的特点就是存储在栈中。引用数据类型:java中的引用数据类型有三种 ( 类、接口、数组),引用数据类型的特点就是存储的是该对象在栈中
2021-05-29 16:14:25
241
原创 ${pageContext.request.contextPath} 无效-取不到值(已解决)
${pageContext.request.contextPath} 无效-取不到值(已解决)在学习spring-mvc时,在为了获取请求参数为 List 类型时,写了一个简单的 jsp 页面时,${pageContext.request.contextPath} 无效。<form action="${pageContext.request.contextPath}/user/request4" method="post"> <input type="text" name="u
2021-05-10 21:04:00
2557
1
原创 学习 Spring 声明式事务控制,基于xml配置
学习 Spring 声明式事务控制,基于xml配置目录学习 Spring 声明式事务控制,基于xml配置事务控制一般分为两种方式什么是 Spring 的声明式事务控制?账户转账案例讲解(环境搭建)导入 jar 包创建数据库创建dao层创建 service 层创建虚假的 web 层,用于测试spring 配置文件编写事物管理器事务的传播行为(了解即可)Spring事物的隔离级别什么是脏读,不可重复读,幻觉读?xml编写xml配置总结事务控制一般分为两种方式1、编程式事务控制2、声明式事务控制编程式事
2021-05-08 20:07:40
146
原创 学习spring 工厂 bean 代理——半自动
学习spring 工厂 bean 代理——半自动目录学习spring 工厂 bean 代理——半自动导入jar包创建目标类创建切面类测试代码导入jar包spring-corespring-beansspring-aopspring-expressionspring-contextcommons-loggingaopalliance (AOP联盟)创建目标类 创建目标类接口 UserService:public interface UserServic
2021-04-28 14:57:45
118
原创 Spring AOP 的手动 jdk 动态代理
Spring AOP 的手动 jdk 动态代理目录Spring AOP 的手动 jdk 动态代理代码过程编写目标类(切入点)编写切面类(通知)编写工厂类测试代码代码过程编写目标类(切入点) 首先创建目标接口 UserService:public interface UserService { public void addUser(); public void updateUser(); public void deleteUser();} 创建接口实现类 U
2021-04-28 13:37:03
139
原创 Spring AOP 的手动 cjlib 动态代理
Spring AOP 的手动 cjlib 动态代理目录Spring AOP 的手动 cjlib 动态代理使用 cjlib 需要导入的包代码过程编写目标类(切入点)编写切面类(通知)编写工厂类测试代码使用 cjlib 需要导入的包使用 cglib需要两个jar包:asm.jar和cglib.jar也可以直接导入 spring-core 包,该包中有上面两个包代码过程编写目标类(切入点) 创建目标类 UserService:public class UserService{
2021-04-28 13:21:54
263
原创 关于Spring中的AOP动态代理类型转换失败的原因——java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to...
关于Spring中的AOP动态代理类型转换失败的原因——java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to… 在使用 Spring 动态代理时,JDK Proxy 这种方式必须实现至少一个接口才能实现对方法的拦截。 报错原因:java.lang.ClassCastException(java强制类型转换异常)。 可能是不小心把实现方法写成接口了。(UserService)Proxy.newProxyInst
2021-04-23 16:09:13
1409
原创 Socket学习( JAVA 文件传输案例)
Socket学习( JAVA 文件传输案例)目录Socket学习( JAVA 文件传输案例)简介表示方法工作步骤IP 地址和端口(port)InetAddress类TCP 和 UDPTCP Socket 通信的 Java 实现传输文件案例(上传)简介 套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。 套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。 Sock
2021-04-22 21:09:55
241
原创 MyBatis学习(详细的构建框架步骤)
MyBatis学习什么是 MyBatis? MyBatis是 MyBatis SQL Mapper Framework for Java (sql映射) MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中
2021-04-15 18:55:23
233
1
原创 自定义 JDBCUtil 工具类
自定义 JDBCUtil 工具类 JDBC 代码过于麻烦,为了简化 JDBC 代码,我们可以自定义一个 JDBCUtil 工具类。/** * 该类为JDBC的工具包,主要用于简化JDBC代码 */public class JDBCUtil { static String url = null; static String user = null; static String password = null; //由于配置文件只用被加载一次即可,所以用静态代码
2021-04-13 20:16:14
136
原创 Java 中 JDBC 学习
Java 中的 JDBC 学习一、概念1、什么是 JDBC ? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。二、常用接口1、Driver接口 Driver接口是java定义的接口,为了规范,而它的具体实现类是由数据库厂家提供,也就是Driver驱动程序。//装载MySql驱动Class.forName("com.mysql.jdb
2021-04-13 19:48:26
113
原创 ajax学习
AJAX学习什么是AJAX ?AJAX是指 Asynchronous JavaScript And XML(异步JavaScript和XML)。AJAX是一种无需重新加载整个网页的情况下,能够更新局部网页的技术。传统的网页(不使用AJAX),如果需要更新内容,则需要重新加载网页。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。原生js实现(了解即可)创建对象//创建核心对象var xmlhttp;
2021-04-08 14:53:08
88
原创 一篇JSON就够了,及java对象转换!!!
JSON 及 java对象转换什么JSON? JSON(JavaScript Object Notation)js对象表示法。 一种轻量级的文本数据交换格式。 易与人阅读和编写,同时也易于机器的解析和生成。JSON语法规则JSON语法是JavaScript对象表示语法的子集。数据在键(名称)/值对中 JSON数据的书写格式 Key : value 名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值: "book" : "西游记"
2021-04-07 20:15:28
205
1
原创 动态代理-勿喷
动态代理定义:代理模式是指为了其他对象提供一种代理,以控制对这个对象的访问。代理模式起到中介的作用,它属于结构化设计模式。目的: *一是保护目标对象; *二是增强目标对象;当你去买华为电脑,华为公司总部在深圳,而你买电脑不可能去那么远的地方,那么你就要去你家附近的华为代理店去买电脑。这里就有华为总部是真实对象(被代理对象),你家附近的华为代理店就是代理对象,代理对象持有被代理对象的引用。下面我们用代码来展示:顶层接口IComputerCompany:public interface
2021-03-30 21:07:36
177
原创 开闭原则
开闭原则含义:是对一个软件实体应该对扩展开放,对修改关闭。好处:提高软件系统的可复用性及可维护性。如版本的更新,我们尽可能的不修改源代码,但是可以增加新的功能。我们以书店卖书为例子,首先创建一个书的接口IBook:public interface IBook { //书名 String getName(); //编号 Integer getId(); //价格 Double getPrice();}而书的分类有数学书、英语书和语文书等,我们来创建
2021-03-27 20:21:51
92
原创 LeetCode:118.杨辉三角!(每日一题)
LeetCode:118.杨辉三角!难度:简单题目: 给定一个非负整数 *numRows,*生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]public List<List<Integer>> generate(int numRows) { List&l
2021-03-25 16:43:02
139
原创 单例模式的实现
单例模式(Singleton Pattern)@[TOC](单例模式(Singleton Pattern))1、懒汉式,线程不安全2、懒汉式,线程安全3、饿汉式4、双检锁/双重校验锁1、懒汉式,线程不安全是否Lazy初始化:是多线程是否安全:否public class SingletonDemo1 { private static SingletonDemo1 singleton; //私有化构造方法,使其无法被实例化,只能通过静态方法来获取 private Singleto
2021-03-24 23:51:27
177
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人