- 博客(45)
- 收藏
- 关注
原创 Swagger使用
Swagger简介号称世界上最流行的API框架;Restful API 文档在线生成工具 ---> API文档与API定义同步更新直接运行,可以在线测试 API 接口;支持各种语言;(Java,PHP....)
2023-10-14 23:47:14
476
原创 基于SpringBoot+LayUI校园二手市场后台管理系统 + 微信小程序(原创完成时间2020年11月)
校园二手市场微信小程序-后台管理系统原创!!原创!!项目原地址:gitee:https://gitee.com/JRaining/campus-secondary-market-app—sysgithub:https://github.com/JRaining/Campus_secondary_market_small_procedures/tree/master介绍演示视频:https://v.qq.com/x/page/x3207qes5h5.html校园二手物品交易平台微信小程序的后台管
2022-02-27 14:45:59
1075
原创 Java多线程
Java 多线程1、程序、进程、线程1.1 程序为完成某种特定任务,用某种语言编写的一组指令的集合,它是一段静态的代码1.2 进程是程序的一次执行过程,或是正在运行的一个程序,动态的过程创建-存在-消亡1.3 线程是进程的一部分,是程序内部的一条执行路径每个线程拥有独立的运行栈和程序计数器进程是程序运行和资源分配的基本单位;线程是 CPU调度 和 分派 的能够独立运行的基本单位;并行、并发并行:多个 CPU 同时执行多个任务;比如:多个人同时做不同事并发:一个 CP
2021-08-31 10:47:44
340
原创 Dubbo(二)—— Dubbo-hello
一、dubbo-hello1、提出需求某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址;我们现在 需要创建两个服务模块进行测试模块功能订单服务web模块创建订单等用户服务service模块查询用户地址等测试预期结果: 订单服务web模块在A服务器,用户服务模块在B服务器,A可以远程调用B的功能。2、工程架构 建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时,这样做也符合分包原则:重用发
2021-08-29 18:03:13
405
原创 Dubbo(一)—— 环境搭建
一、简介: Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。官网1、基本概念 服务提供者 (Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者 (Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基
2021-08-28 13:34:57
291
原创 安全权限框架 —— Shiro(二)
1、权限注解@RequiresAuthentication:表示当前Subject已经通过login 进行了身份验证;即Subject. isAuthenticated() 返回true;@RequiresUser:表示当前Subject 已经身份验证或者通过记住我登录的;@RequiresGuest:表示当前Subject没有身份验证或通过记住我登录过,即是游客身份;@RequiresRoles (value={“admin”, “user”}, logical== Logical
2021-08-27 09:29:48
668
原创 安全权限框架 —— Shiro(一)
1.简介Apache Shiro 是Java的一个安全(权限)框架;Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境;主要功能:认证(Authentication)、授权(Authorization)、加密、回话管理、与Web集成、缓存等;Shiro 架构Subject:应用代码直接交互的对象是Subject,也就是说Shiro的对外API 核心就是Subject。Subject 代表了当前“用户”,这个用户不一定是一个具体
2021-08-26 13:00:51
648
原创 自定义注解的使用
1、元注解使用自定义注解前,先了解相关元注解java.lang.annotation 提供了四种元注解,专门注解其他的注解(在自定义注解的时候,需要使用到元注解):@Documented – 注解是否将包含在JavaDoc中@Retention – 什么时候使用该注解@Target – 注解用于什么地方@Inherited – 是否允许子类继承该注解(1). @Retention:定义该注解的生命周期RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之
2021-08-25 12:21:49
675
原创 Spring中AOP的从无到有详解
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
2021-08-24 13:35:10
389
原创 Spring的一些基本概念(面试备用哦)
1. 什么是Spring, 它有什么特点? 包括哪些内容?Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。◆ 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并 且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。◆ 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦 合。
2021-08-23 11:52:21
543
原创 Redis进阶(八)—— Spring Boot整合
1、常用的 Redis 客户端介绍在 Spring Boot 2.x 之后,对Redis连接的支持,默认采用了 lettuce。 Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html lettuce 官网地址:https://lettuce.io概念:Jedis:是老牌的Redis的Java实现客户端,提供了比较全面的Redis命令的支持;Redisson:实现了分布式的
2021-08-22 19:41:12
854
原创 微信小程序开发—— 基础知识
一、目录结构二、配置一个小程序应用程序会包括最基本的两种配置文件。一种是全局配置文件 app.json 和 页面自己的配置文件 page.json.配置文件中不能出现注释2.1 全局配置 app.jsonapp.json 是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部tab等。 { "pages":[ "pages/index2/index2", "pages/index/index", "pages/logs/logs"
2021-08-21 11:14:05
1696
1
原创 Spring Boot(五)—— 默认的错误处理机制
一、默认处理机制默认效果:1、浏览器访问:返回一个默认的错误页面浏览器请求头:2、其他客户端,默认相应json数据请求头:1、原理ErrorMvcAutoConfiguration,错误处理的自动配置给容器添加了一下组件:(1). ErrorPageCustomizer(错误页面定制器) @Override public void registerErrorPages(ErrorPageRegistry errorPageRegistry) { Err
2021-08-20 11:50:07
982
原创 Spring Boot(四)—— Spring MVC自动配置
一、Spring MVC 自动配置SpringBoot实现自定义功能,需找到其自动配置类。一般自动配置类功能的实现,会先判断容器中是否存在相关类,如果不存在才是用Spring Boot中默认的自动配置类SpringMVC执行流程:Spring MVC Auto-configurationhttps://docs.spring.io/spring-boot/docs/2.1.12.RELEASE/reference/html/boot-features-developing-web-applic
2021-08-19 11:21:25
824
原创 Spring Boot(三)—— web 开发
一、简介使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot 已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码;二、Spring Boot 对静态资源的映射规则WebMvcAutoConfiguration.java@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { if (!th
2021-08-18 12:14:34
574
原创 Spring Boot(二)—— 配置文件解析
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。 SpringBoot配置文件的类型:SpringBoot默认加载resources目录下的application.properties或application.yml(application.yaml)文件。 根据spring-boot-starter-pare.
2021-08-17 11:01:25
868
原创 Spring Boot(一)—— 快速入门及原理分析
一、代码实现1. 创建maven工程,普通的java工程2. 添加SpringBoot的起步依赖SpringBoot要求,项目要继承SpringBoot的起步依赖 spring-boot-starter-parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</arti
2021-08-16 10:23:36
728
原创 Java设计模式(二)—— 工厂模式
工厂模式实例化对象不使用 new,用工厂方法代替;将选择实现类、创建对象统一管理和控制,从而将调用者跟我们的实现类解耦简单工厂模式(静态工厂模式)在创建一个对象时不向用户暴露内部细节,并提供一个创建对象的通用接口;虽然某种程度上不符合设计原则(开闭原则),但实际使用最多。工厂方法模式定义一个创建对象的借口,但由子类决定要实例化哪个类。工厂方法吧实例化操作推迟到子类;不修改已有类的前提下,通过增加新的工厂类实现扩展抽象工厂模式围绕一个超级工厂创建其他工厂,该超级工厂又称
2021-08-15 10:50:24
742
原创 Java设计模式(一)—— 单例模式
1、单例模式确保一个类只有一个实例,并提供该实例的全局访问点。1.1 饿汉式-线程安全 public class Hungry { private static Hungry hungry = new Hungry(); private Hungry(){ } public static Hungry getInstance(){ return hungry; } }会造成资源的浪费1.
2021-08-14 13:30:02
724
原创 Java集合(二)—— Map
1、MapHashMap:JDK 1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突);JDK 1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于等于阈值 (默认 8)时,将链表转化成红黑树(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树),以减少搜索时间LinkedHashMap:LinkedHashMap 继承自 HashMap ,
2021-08-13 09:39:10
500
原创 Java集合(一)—— Collection
1、集合的引入数组、集合是对多个数据进行存储操作的,简称容器。在引入集合使用我们更多的使用的是数组。1.1 数组的特点数组一旦指定了长度,那么长度就被确定了,不可以更改了;数组一旦声明了类型以后,数组中只能存放这个类型的数组,数组中只能存放同一种类型的数据。1.2 数组的缺点数组一旦指定了长度,那么长度就被确定了,不可以更改;删除,增加元素,效率低;数组中实际元素的数量是没有办法获取的,没有提供对应的方法或者属性来获取;数组存储:有序,可重复;对于无序的,不可重复的数组不能满足
2021-08-12 08:39:48
701
原创 Redis基础(七)—— 缓存穿透、击穿、雪崩
Redis 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么不能使用缓存。我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两者间的强一致性。合适的策略包括 合适的缓存更新策略,更新数据库后要及时更新缓存、缓存失败时增加重试机制,例如MQ模式的消息队列。典型问题:缓存穿透、缓存雪崩、缓存击穿缓存穿透用户大量并发请求的数据(ke.
2021-08-11 08:04:35
509
原创 Redis基础(六)—— 主从复制
概念主从复制,是指将一台 Redis 服务器的数据,复制到其他的Redis服务器。前者称为主节点 (master/leader),后者称为从节点 (slave/follower),数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。默认情况下,每台 Redis 服务器都是主节点,且一个主节点可以有零个或多个从节点,但一个从节点只能由一个主节点。主从复制,读写分离.作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式;故障恢复:当主节点
2021-08-10 08:23:43
524
原创 Redis基础(五)—— 持久化
Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以Redis提供了持久化功能。持久化就是把内存中的数据写到磁盘中去,防止服务器宕机了内存数据丢失;Redis 提供了两种持久化方式:RDB(默认)和 AOFRDB(默认)RDB 是 Redis Database的缩写把当前数据生成快照保存在硬盘上功能核心函数 rdbSave(生成RDB文件)和 rdbLoad(从文件加载到内存)两个函数快照是默认的持久化方式,这种.
2021-08-09 09:04:52
457
原创 Redis基础(四)—— 事务
简介Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。命令 # 标记一个事务块的开始 MULTI # 执行所有事务块内的命令 EXEC # 取消事务,放弃执行事务块内的
2021-08-07 11:01:58
428
原创 Redis基础(三)—— 发布订阅
1、Redis 发布订阅简介Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息;Redis 客户端可以订阅任意数量的频道 当有新消息通过 PUBLISH 命令发送给频道 channel1 时,这个消息就会被发送给订阅它的三个客户端配置订阅与发布常用命令 # 订阅频道: # 订阅给定的一个或多个频道的信息 SUBSCRIBE channel [channel ...]&n
2021-08-07 10:58:30
386
原创 微信小程序用户登录功能无法使用
背景一个半年前的小程序项目了,最近一个用我项目的朋友说用户登录功能不能用了,小程序端、后端都没有报错。只有我开发时留下的,信息提示。我第一个反应就是微信小程序在今年三月份更新的接口,wx.getUserProfile。但我都把方法改好了呀。于是我在自己电脑上运行了下项目,没有问题,我对比了下我和他的开发者工具版本,他是最新的,我把微信开发者工具更新到最新后,果然:于是我又查询了开发者更新日志、微信小程序更新日志,发现不了问题。但我想到微信小程序的功能不应该受到开发者工具的影响啊,这不本末倒置
2021-07-31 22:03:45
5292
1
原创 Redis基础(二)—— 基本命令与数据类型
1、Redis基本命令# 切换数据库SELECT index# 当前数据库有的数据量DBSIZE# 清空当前数据库内容FLUSHDB# 清空所有数据库内容FLUSHALL1.1 key# 删除指定key(一个或多个)DEL key [key ...] # 序列化指定key的值DUMP key # 查询key是否存在EXISTS key # 设置一个key的过期时间(s)EXPIRE key seconds # 获取key的有效时间(s)(-1,永久有效;-2,无效,没
2021-07-26 23:28:53
407
原创 Redis基础(一)—— 简介与配置
1、Redis简介 Redis( Remote Dictionary Server ) 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的 key-value 数据库;Redis 是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久化的日志类型、Key-Value数据库NoSQL介绍 NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,
2021-07-26 23:23:12
416
转载 Linux系统-防火墙相关命令
1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 : systemctl enable firewalld2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。启动一个服务:system
2021-07-13 15:51:52
111
原创 网络爬虫(三)- WebMagic
一、WebMagicWebMagic是一款爬虫框架,其底层用到之前学习到的HttpClient 和 Jsoup ,可以让我们更方便的开发爬虫。WebMagic 项目代码分为核心和扩展两部分核心部分是一个精简的、模块化的爬虫实现;扩展部分则包括一些便利的、实用性强的功能。 WebMagic 的设计目标是尽量的模块化,并体现爬虫的功能特点。这部分提供了非常简单、灵活的API,在基本不改变开发模式的情况下,编写爬虫。 扩展部分提供一些便捷的功能,例如注解模式编写爬虫等。同事内置一些常用的组件,
2021-06-07 16:35:43
1071
原创 网络爬虫(二)- Jsoup
在我们抓取到页面之后,还需要对页面进行解析。整个页面都是字符串的形式,可以使用字符串处理工具来解析页面,也可以使用正则表达式,但这些方法都会带来很大的开发成本。所以我们需要一款准们解析 html 页面的工具。Jsoupjsoup是一款 java 的 HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。主要功能:从URL,文件或字符串中解析HTML;使用DOM 或 CSS选择器来查.
2021-06-07 16:34:52
601
原创 网络爬虫(一)- 基本使用
get请求get请求的基本使用 // 1. 打开浏览器,创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // 2.输入网址,发起get请求创建HttpGet对象 HttpGet get = new HttpGet("http://112.124.1.187/index.html?typeId=16"); // 3.发情请求,返回响应,
2021-06-07 16:34:11
408
原创 异常-总结
参考博客:https://snailclimb.gitee.io/javaguide/#/docs/java/basis/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86?id=_321-java-%e5%bc%82%e5%b8%b8%e7%b1%bb%e5%b1%82%e6%ac%a1%e7%bb%93%e6%9e%84%e5%9b%be1、Java 异常类层次结构图2、Error 、Exception在 Java 中,所有的异常都有一个共同的祖先 jav.
2021-06-03 15:06:53
617
原创 反射的基本概念与运用
参考博客:https://www.cnblogs.com/ysocean/p/6516248.htmlhttps://www.sczyh30.com/posts/Java/java-reflection-1/JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射的核心是 JVM 在运行时才动态加载类或调用方法 / 访问属性,它不需要事先(写代码时.
2021-06-03 15:05:27
669
原创 ==与equals 的区别,为什么重写 equals 方法也要重写 hashCode 方法?
==引用类型:== 是直接比较的两个对象的堆内存地址,如果相等,则说明两个引用实际是指向同一个对象地址的。基本类型:对于 基本数据类型(8个)和 String 来说又是怎样呢?int a = 123;int b = 123;System.out.println(a == b); // trueString s1 = "abc";String s2 = "abc";System.out.println(s1 == s2); // trueString s3 = new Strin
2021-06-03 15:04:38
749
原创 File类的基本方法
1.File 类的基本方法String getAbsoluteFile(); // 返回该文件的绝对路径String getPath(); // 只返回 File 构造方法传入的路径String getName(); // 返回 File 构造方法后面一部分,文件/目录的名成Long length(); // 返回文件的大小,不能返回文件夹大小2.File 类判断方法boolean exists(); // 该文件/目录是否存在boolean isDirectory(); // 是否是文
2021-06-03 15:02:59
662
原创 内部类(成员内部类、局部内部类(包括匿名内部类))
一个事物的内部包含另一个事物。一个类里面包含另一个类,这个类叫内部类,包含它的叫它外部类。例如:身体和心脏的关系;汽车和引擎的关系。心脏、引擎只有在身体和汽车中才有用。内部类也一样。分类:1.成员内部类;2.局部内部类(包括匿名内部类);1.成员内部类/* 修饰符 class 外部类名称{ 修饰符 class 内部类名称{ ...... } ...... } */public class Outer
2021-06-03 15:02:08
782
原创 去除idea中mapper.xml文件中的黄色背景色
打开 mapper.xml文件显示如下,这样看起来对视觉影响太大,编码期间很不友好步骤settings->Editor->Inspection,然后取消以下两个勾选over!!!
2021-06-03 15:00:08
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人