- 博客(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
原创 抽象类
(一)抽象类的概念 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关注的人
RSS订阅