优点: 未使用if else,就算以后增加支付类型,也不用改动之前代码 只需要新写一个支付类,给添加自定义注解@Pay 首先: 定义自定义注解 Pay 定义 CMBPay ICBCPay 两种支付 根据注解中的value 标识是哪种支付(1为CMBPay  2为ICBCPay) 两种支付都需继承InitNewService.java 避免注入对象报错 package com.huarui.inter; import java.math.BigDecimal; /** * 支付需实现该接口 * 接…
a simple jdbc tools 如有转载和引用,请注明出处,谢谢 1. 定义我们需要的注解 要想实现对数据库的操作,我们必须知道数据表名以及表中的字段名称以及类型,正如hibernate 使用注解标识 model 与数据库的映射关系一样,这里我也设计了两个注解 table 注解 package club.loweir.jdbc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.…
本篇文章将从元注解.自定义注解的格式.自定义注解与反射结合的简单范例.以及自定义注解的应用来说一说java中的自定义注解. 一.元注解 元注解也就是注解其他注解(自定义注解)的java原生的注解,Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited                        …
在常见的ORM框架中,大都提供了使用注解方式来实现entity与数据库的映射,这里简单地使用自定义注解与反射来生成可执行的sql语句. 这是整体的目录结构,本来是为复习注解建立的项目^.^ 好的,首先我们来确定思路. 1.  自定义@Table @Column注解, 我们稍微模仿hibernate,让@Table作用于类上,来表明实体类与数据表的映射关系,且让@Table中的属性value映射为数据表的名称tableName:让@Column作用于属性上(这里没实现作用于set方法上),表明属性…
在Spring中,我们可以通过 @Autowired注解的方式为一个方法中注入参数,那么这种方法背后到底发生了什么呢,这篇文章将讲述如何用Java的注解和反射实现一个“低配版”的依赖注入. 下面是我们要做的一些事情: 通过 @interface的方式定义一个注解 为某个希望杯被注入的方法添加这个注解 编写测试代码,通过反射获取添加了注解的方法对应的Method对象,将该方法对象设置为可访问的,通过反射创建对象并调用这个方法,同时注入依赖数据 如上所述,我们分为三个步骤, 去加工出这个低配版的依赖…
预备知识: Java注解基础 Java反射原理 Java动态代理 一.布局文件的注解 我们在Android开发的时候,总是会写到setContentView方法,为了避免每次都写重复的代码,我们需要使用注解来代替我们做这个事情,只需要在类Activity上声明一个ContentView注解和对应的布局文件就可以了. @ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity {…
自定义注解开发 1.开发一个注解类 开发一个注解类的过程,非常类似于开发一个接口,只不过需要通过@interface关键字来声明 2.使用元注解修饰注解的声明 所谓的原注解是用来修饰注解声明的注释,可以控制被修饰的注解的特性. @Target 用来声明被修饰的注解可以用在什么位置. 可以在@Target的属性中设置Element Type类型的数组来指定可以使用的位置. 如果不使用此原注解修饰,默认注解可以用在任意位置. @Retention 用来声明被修饰的注释会被保留到什么阶段. 可以在该注…
前言 我黄汉三又回来了,快半年没更新博客了,这半年来的经历实属不易,疫情当头,本人实习的公司没有跟员工共患难, 直接辞掉了很多人.作为一个实习生,本人也被无情开除了.所以本人又得重新准备找工作了. 算了,感慨一下,本来想昨天发的,但昨天是清明,哀悼时期,就留到了今天发. 话不多说,直接进入正题吧.这段时间本人在写毕设,学校也迟迟没有开学的消息,属实难顶. 本来被开了本人只想回学校安度"晚年"算了,毕竟工作可以再找,但亲朋好友以后毕业了可能就很少见了. 所以亲们,一定要珍惜身边的人噢.…
前言   项目中经常会出现重复提交的问题,而接口幂等性也一直以来是做任何项目都要关注的疑难点,网上可以查到非常多的方案,我归纳了几点如下:   1).数据库层面,对责任字段设置唯一索引,这是最直接有效的方式,不好的地方就是一旦触发就会在服务端抛数据库相关异常:   2).代码层面,增加业务逻辑判断,先查询一遍若没有才插入,这也是最容易想到的方式,反正写上就对了,不好的地方就是分布式场景下依然避免不了问题:   3).前端层面,对于触发事件的操作比如按钮等,最好点击过后都设置几秒的置灰时间,能很大…
0.需求 在实际的开发过程中,服务间调用一般使用Json传参的模式,SpringBoot项目无法使用@RequestParam接收Json传参 只有@RequestBody支持Json,但是每次为了一个接口就封装一次实体类比较麻烦 如果使用Map来进行参数接收,则会导致参数不可控,会在接口中新增较多判断进行入参控制 其次,在实际的开发过程中,我们偶尔会传入两个实体类,如果使用@RequestBody也会出错 因为传入的参数只能够读取一次,一般这里也会封装一次实体类,不够方便 也有重写HttpSe…