自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈家豪的博客

见证在Java学习的过程中的成长

  • 博客(20)
  • 收藏
  • 关注

原创 自定义注解aop实现访问接口log打印

1.自定义注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Log { String value() default ""; } 2.aop实现类 @Slf4j @Aspect @Component public class LogAspect { @Resource private BaseProperties dsProperties; @Reso

2021-07-26 11:16:45 376

原创 执行sql日志打印拦截器实现

添加拦截器 @Slf4j @Intercepts(value = { @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}), @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBound

2021-07-26 11:05:02 521

原创 自定义业务异常

BusinessException public class BusinessException extends RuntimeException{ private static final long serialVersionUID = 2218515841497670864L; private Long code; protected Object data; public BusinessException() { this("操作失败!");

2021-07-26 10:53:52 264

原创 注解+pagehelper实现sql数据分页

1.首先声明注解@Pageable @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Pageable { int defaultPage() default 0; int defaultSize() default 10; int maxPage() default 500; int maxSize() default 100; boolean

2021-07-26 10:33:51 929

原创 spring-boot AOP 记录用户操作日志

实现aop方法 @Slf4j @Aspect @Component public class LogAspect { @Autowired private BaseProperties baseProperties; @Autowired private LogService logService; @Pointcut("@annotation(annotation.Log)") public void pointcut() { // d

2021-03-31 14:53:27 174

原创 自定义注解+AOP+Redis实现限流 (单体和分布式均适用,全局限流)

接口限流 接口限流全局操作通常使用令牌算法,漏桶算法。 这篇文章讲的较好, https://blog.youkuaiyun.com/zrg523/article/details/82185088 接入层有分布式限流,nginx限流。 本文使用注解方式在springboot中限流。 声明限流类,编写AOP实现功能 @Slf4j @Aspect @Component public class LimitAspect { private final RedisTemplate<String, Serializ

2021-03-31 14:50:28 1096

原创 spring微服务解决跨域问题

一、使用注解@CrossOrigin controller方法的CORS配置,您可以向@RequestMapping注解处理程序方法添加一个@CrossOrigin注解,以便启用CORS,放在类上对类下面所有方法生效,spring会整合类和方法上的参数。(默认情况下,@CrossOrigin允许在@RequestMapping注解中指定的所有源和HTTP方法): @RestController @CrossOrigin(origins = "http://domain2.com", maxAge = 36

2021-03-26 15:10:18 318

原创 spring-boot使用拦截器添加http、https请求日志,传递header

添加http拦截器 @Component("RestTemplateInterceptor") @Order(value = 2) @Slf4j public class RestTemplateInterceptor implements ClientHttpRequestInterceptor { @Override public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, ClientHttpR

2021-03-26 14:54:03 885

原创 spring-boot+Mybatis使用拦截器打印sql

配置拦截器核心@Intercepts注解 @Slf4j @Intercepts(value = { @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}), @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.

2021-03-26 14:35:00 1087

原创 对于RabbtiMQ,Work模型

引入RabbitMQ依赖 这里自行去springboot,maven仓库找仓库 org.springframework.amqp.rabbit 配置RabbitMQ生产者 package com.bestapp.bxhub.marketing.consts; public interface MQConsts { //交换机名称,本次使用topic模式 String EXCHANGE_CONTRIBUTION_TOPIC = "contribution.change.topic";

2021-03-25 16:23:39 155

原创 整理一些在gitee上找到的便于javaweb开发的工具

1.第三方接口请求访问 1.1 https://gitee.com/dt_flys/forest?_from=gitee_search 特点,轻量级http,微服务请求 1.以Httpclient和OkHttp为后端框架 2. 通过调用本地方法的方式去发送Http请求, 实现了业务逻辑与Http协议之间的解耦 3. 因为针对第三方接口,所以不需要依赖Spring Cloud和任何注册中心 4. 支持所有请求方法:GET, HEAD, OPTIONS, TRACE, POST, DELETE, PUT, PA

2021-03-11 11:37:20 318

原创 异常处理

通常程序中的错误可分为三种类型: 编译错误:编译器能够检测到的错误,一般是语法错误。此时不能将源代码(.java)编译成可执行的字节码文件(.class)。 运行错误:程序运行时产生的错误,例如被0除、数组下标越界等等。 逻辑错误:实际结果与所期结果不同,这是机器本身无法检测的,需要程序员对运行结果及程序逻辑进行分析才能发现,逻辑错误可能会导致运行结果错误,有时也可能会导致运行错误。

2020-07-08 18:40:09 833 1

原创 Object类

文章目录(一)Object类的概念(二)Object的子类继承了Object的方法(1)getClass()方法(2)equals()方法(3)toString()方法 (一)Object类的概念 1.java.lang.Object是java中所有类的直接父类或者间接父类。 例子:class A{} class B extends A{} 2.所有类的对象都可以声明成Object引用。 例子:Object o1=new A() Object o2=new B() (二)Object的子类继承了Object

2020-07-05 18:08:48 2369 1

原创 接口

(一)接口的概念

2020-07-01 16:24:54 217

原创 抽象类

(一)抽象类的概念 1.抽象类用来描述一些代表通用概念的类。 2.例如汽车、火车、轮船等等,它们都属于交通工具,而交通工具只是一个抽象概念,因此我们可以定义一个交通工具类,并且将该类定义成抽象类。 3.在Java中用abstract修饰的类是抽象类。 例如:abstract class TrafficTool {……} 与普通类的区别: 抽象类中可能有抽象方法,普通类没有抽象方法。 抽象类不能实例化,普通类可以进行实例化。 3.抽象类不能用final修饰,普通类可以。 4.抽象类只能做父类被其他类继承。

2020-07-01 15:49:26 856

原创 类的三大特性-多态

(一)多态的概念 (二)多态的例子 (三)多态确定对象的类型 (四)静态和非静态的区别 (五)静态变量和静态方法 (六)方法绑定

2020-06-30 19:36:30 3006

原创 类的三大特性-封装

(一)类的封装 (1)类的封装性 1.如果外部的类可以随意修改一个类的成员变量,可能会造成不可预料的程序错误。例如一个人的年龄,必须是在一个正常的范围内,不能被外部随意修改,如果被设成负数,则可能会出现程序错误。 2.在定义一个类的成员(包括变量和方法)时,可以使用private、protected、public等关键字说明这个成员的访问权限。 3.为了实现良好的封装性,通常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。 4.对一个成员变量,一般有读取和赋值两种操作,一般

2020-06-30 08:33:33 2397

原创 方法的构造

(一)方法的构造 (1)构造方法介绍 构造方法是一种特殊的成员方法,构造方法的作用是在创建对象时自动进行一些初始化操作构造方法的特征: 1.方法名和类名完全相同。 2.它不含返回值,甚至连void也没有。 3.不能被static、final、abstract、native等等修饰。 4.使用new创建对象时,系统会自动调用构造方法。 /* 有参构造方法 name,age this:当前对象 可以通过有参构造方法对当前对象的属性进行赋值。 */ package com.soft.javase public c

2020-06-29 20:49:48 562

原创 类的三大特性-继承

(一)父类和子类 子类:子类是作为另一个类的扩充或修正而定义的一个类。通过继承而得到的类为子类。 父类:被继承的类为父类。 extends:继承的关键字。 Dog为子类,Animal为父类。 (二)继承的概念 注意:继承使得子类可以利用父类中定义的方法和变量,就像它们属于子类本身一样。 1.继承是面向对象程序设计语言的一个基本特征,通过继承可以实现代码的复用。如果一个类没有声明extends子句,则该类默认继承Object。 2.定义子类的语法: class SubClass extends SuperCl

2020-06-29 20:20:05 635

原创 优快云博客练习

目录(一)创建自己第一篇文章(1)创作文章1.1 编辑题目1.2编辑内容(2)发布文章(二)插入图片 (一)创建自己第一篇文章 (1)创作文章 1.1 编辑题目 引用文本//常用代码、注释。 1.2编辑内容 博客书写练习//- 练习如何使用博客,以及一些基本操作。 再次练习//"*’" 练习如何使用博客 (2)发布文章 xxxxxxxxx 背景颜色是Orange 中间想说的 中间写上想说的话 黑体字示例 华文彩云示例 color=#0099ff size6 face=“黑体” package co

2020-06-28 20:22:24 316

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除