前言(1)Java实现自定义注解其实很简单,跟类定义差不多,只是属性的定义可能跟我们平时定义的属性略有不同,这里会给大家详解,先来看代码:@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public@interfaceCustomAnnotation{Stringmessage()default"";int[]nums();}上面代码就实现了一个自定义注解,实现自定义注解需要最少指定两个基本条件:①注解的作用范围②注解的生命周期,那这两个范围怎么指定呢?这个问题问的很好,指定这两个条件,就需要使用到了Java为我们提供的
目录一、注解配置AOP1.开启注解支持2.在类和方法加入注解3.测试4. 为一个类下的所有方法统一配置切点二、原生Spring实现AOP1.引入依赖2.编写SpringAOP通知类3.编写配置类bean2.xml4 测试三、SchemaBased实现AOP1.配置切面2.测试往期专栏&文章相关导读 1.Maven系列专栏文章2.Mybatis系列专栏文章3.Spring系列专栏文章一、注解配置AOPSpring可以使用注解代替配置文件配置切面:1.开启注解支持在xml中开启AOP注解支持以下是bean1.xml文件2.在类和方法加入注解在通知类上方加入注解@Aspect:配置切面在通知方法上
@TableId注解是专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。比如数据中的表中的字段是vote_id,但是实体类是voteId。那么就需要在voteId上打上这个注解,如下:/**主键*/@TableId("vote_id")@TableId(value="vote_id")privateLongvoteId;@TableId注解源码packagecom.baomidou.mybatisplus.annotati
@TableId注解是专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。比如数据中的表中的字段是vote_id,但是实体类是voteId。那么就需要在voteId上打上这个注解,如下:/**主键*/@TableId("vote_id")@TableId(value="vote_id")privateLongvoteId;@TableId注解源码packagecom.baomidou.mybatisplus.annotati
@RunWith注解的作用@RunWith就是一个运行器@RunWith(JUnit4.class)就是指用JUnit4来运行@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境@RunWith(Suite.class)的话就是一套测试集合,在使用spring-test的过程中,有两个runner可以选择,分别是SpringRunner和SpringJUnit4ClassRunner。如果是在4.3之前,只能选择SpringJUnit4ClassRunner,如果是4.3之后,建议选择SpringRunner。SpringRunner
Spring注解开发什么是注解(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值..)(2)使用注解,注解作用在类上面,方法上面,属性上面(3)使用注解目的:简化xml配置Spring针对Bean管理创建对象提供的注解(1)@Component(2)@Service(3)@Controller(4)@Repository上面四个注解功能是一样的,都可以用来创建bean实例基于注解方式实现对象创建(1)需要aop依赖的支持spring-aop(2)开启组件扫描:1.如果扫描多个包,多个包使用逗号隔开;2.扫描包上层目录?xmlversion="1.0"encoding
Java语言使用@interface语法来定义注解(Annotation),它的格式如下:public@interfaceReport{inttype()default211;Stringlevel()default"211";Stringvalue()default"211";} 注解的参数类似无参数方法,可以用default设定一个默认值(强烈推荐)。最常用的参数应当命名为value。元注解有一些注解可以修饰其他注解,这些注解就称为元注解(metaannotation)。Java标准库已经定义了一些元注解,我们只需要使用元注解,通常不需要自己去编写元注解。@Target最常用的元注解是@T
背景上篇文章研究了一下JUnit的基础原理,这篇来看看Mockito和JUnit交界的部分:@Mock注解。@Mock注解可以看做一个语法糖,用更少的代码实现相同的mock功能。例如:@RunWith(MockitoJUnitRunner.class)//注意这一行publicclassMyTest{ @Mock ListString>mockedList; @Test publicvoidsimpleTest(){ Mockito.when(mockedList.size()).thenReturn(100); assertEquals(100,mockedList.size()); }}
背景上篇文章研究了一下JUnit的基础原理,这篇来看看Mockito和JUnit交界的部分:@Mock注解。@Mock注解可以看做一个语法糖,用更少的代码实现相同的mock功能。例如:@RunWith(MockitoJUnitRunner.class)//注意这一行publicclassMyTest{ @Mock ListString>mockedList; @Test publicvoidsimpleTest(){ Mockito.when(mockedList.size()).thenReturn(100); assertEquals(100,mockedList.size()); }}
虽然我们在日常开发中,Spring Boot 使用非常多,算是目前 Java 开发领域一个标配了,但是小伙伴们仔细想想自己的面试经历,和 Spring Boot 相关的面试题都有哪些?个人感觉应该是比较少的,Spring Boot 本质上还是曾经 SSM 那一套,只是通过各种 starter 简化了配置而已,其他都是一模一样的,所以 Spring Boot 中很多面试题还是得回归到 Spring 中去解答!当然这并不是说 Spring Boot 中没什么可问的,Spring Boot 中其实也有一个非常经典的面试题,那就是 Spring Boot 中的自动化配置是怎么实现的?今天松哥就来和各位