对引用的概念进行了扩充,将引用分为了: 强引用(Strong Reference) 软引用(Soft Reference) 弱引用(Weak Reference) 虚引用(Phantom Reference)4 种,...这 4 种引用的强度依次减弱。...虚引用 虚引用是最弱的一种引用关系,如果一个对象仅持有虚引用,那么它就和没有任何引用一样,它随时可能会被回收,在 JDK1.2 之后,用 PhantomReference 类来表示,通过查看这个类的源码
1、@Import注解须知 1、@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中 2、加入IOC容器的方式有很多种,@Import注解就相对很牛皮了...,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷 3、@Import注解有三种用法 2、@Import的三种用法 @Import...3、@Import注解的三种使用方式总结 第一种用法:@Import({ 要导入的容器中的组件 } ):容器会自动注册这个组件,id默认是全类名 第二种用法:ImportSelector:返回需要导入的组件的全类名数组...,特别注意第一种和第二种都是以全类名的方式注册,而第三中可自定义方式。...@Import注解本身在springboot中用的很多,特别是其中的第二种用法ImportSelector方式在springboot中使用的特别多,尤其要掌握!
第一步:https://github.com/spring-projects/spring-framework 从git上面下载Spring的源码
xml中的(类上) @WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替代这两个注解 4.切面(AOP)相关注解 Spring支持AspectJ...的注解式切面编程。...@Enable*注解说明 这些注解主要用来开启对xxx的支持。...@EnableTransactionManagement 开启注解式事务的支持 @EnableCaching 开启注解式的缓存支持 11.测试相关注解 @RunWith 运行器,Spring中通常用于对...ModelAttribute注解到方法上, 这对所有注解了 @RequestMapping的控制器内的方法有效。
用在集合类上面 加了@NotEmpty的String类、Collection、Map、数组,是不能为null或者长度为0的(String Collectio...
注解本身没有功能的,就和 xml 一样。注解和 xml 都是一种元数据,元数据即解释数据的数据,这就是所谓配置。 本文主要罗列 Spring|Spring MVC相关注解的简介。...xml中的(类上) @WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替代这两个注解 4、切面(AOP)相关注解 Spring支持AspectJ...的注解式切面编程。...@EnableTransactionManagement 开启注解式事务的支持 @EnableCaching 开启注解式的缓存支持 11、测试相关注解 @RunWith 运行器,Spring中通常用于对...ModelAttribute注解到方法上, 这对所有注解了 @RequestMapping的控制器内的方法有效。
@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。...全局异常处理 使用 @ControllerAdvice 实现全局异常处理,只需要定义类,添加该注解即可定义方式如下: @ControllerAdvicepublic class MyGlobalExceptionHandler...@ExceptionHandler 注解用来指明异常的处理类型,即如果这里指定为 NullpointerException,则数组越界异常就不会进到这个方法中来。...全局数据绑定 全局数据绑定功能可以用来做一些初始化的数据操作,我们可以将一些公共的数据定义在添加了 @ControllerAdvice 注解的类中,这样,在每一个 Controller 的接口中,就都能够访问导致这些数据...,默认情况下,这个全局数据的 key 就是返回的变量名,value 就是方法返回值,当然开发者可以通过 @ModelAttribute 注解的 name 属性去重新指定 key。
文章目录 一、定义注解 二、使用注解 三、解析注解 四、通过注解对象获取注解属性的原理 在 【Java 注解】自定义注解 ( 注解属性定义与赋值 ) 博客中讲解了 注解属性 ; 在 【Java 注解】自定义注解...( 元注解 ) 博客中讲解了注解中的元注解如何描述注解 ; 本篇博客开始讲解注解在程序中如何进行 解析 和 使用 ; 注解中定义了 若干 注解属性 , 那么就需要在某个阶段 , 将 注解属性 的值拿出来...调用 注解对象 中的抽象方法, 获取其返回值 // 注解的本质就是接口, 其中的注解属性本质是 抽象方法 // 注解对象可以直接调用注解超抽象方法, // 是因为在内存中生成了该...: name = " + name + " , age = " + age); } } 四、通过注解对象获取注解属性的原理 ---- 通过注解对象获取注解属性的原理 : 注解的本质就是接口,...其中的注解属性本质是 抽象方法 , 注解对象可以直接调用注解超抽象方法 , 是因为在内存中生成了该 注解 接口的子类对象, 实现了 name 和 age 方法 , 返回值就是本类注解中的 注解属性值 ;
查看@JSONField注解的源码可以了解到它的作用范围是在方法(METHOD)、属性(FIELD)、方法中的参数(PARAMETER)上。...2.注解作用在set、get方法之上 @JSONField(name="new_username") public String getUsername() { return...new_username,可以改变字段的名称,跟上面直接注解到属性上是一样的效果。...3.注解中的serialize、deserialize用法 翻看源码可以看到serialize、deserialize的默认值都是true,也就是说默认情况下(即使不设置serialize、deserialize...@JSONField(name="new_password", serialize=false, deserialize=false) private String password; 4.注解中的
今天楠哥给大家讲讲在实际开发中经常会使用到的 IoC 技术:通过 IoC 容器架构程序的分层实现,有两种方式:基于 XML 配置文件和基于注解。...代码成功运行,通过代码可以看到,使用注解的方式,可简化代码,所以实际开发中,推荐使用基于注解的方式来架构分层。...IoC 中可以给类添加的注解有 4 种: @Controller @Service @Repository @Component 这 4 种注解方式没有区别,我们在开发时可以随意使用任意一个注解,但是基于代码规范一般选择使用...其实在类中添加注解时,已经设置了默认的 ID,即类名首字母小写之后的值就是 ID 的默认值。...推荐阅读 1、axios异步请求数据的12种操作(上篇) 2、axios异步请求数据的12种操作(下篇) 3、一文搞懂前后端分离 4、快速上手Spring Boot+Vue前后端分离
文章目录 一、元注解 二、常用的元注解类型 三、@Target 元注解 四、@Retention 元注解 五、@Documented 元注解 六、@Documented 元注解 一、元注解 ---- 元注解...是 描述 注解 的 注解 ; 以 Override 注解为例 , 分析下该注解的 元注解 含义 : @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE...: 描述 注解 是否被子类继承 , 如果添加了该注解 , 则子类会自动继承父类的注解 ; 三、@Target 元注解 ---- 查看 Target 注解的源码 , 该注解只有 1 个注解属性 , 且属性值是...注解 , 则导出的文档如下 , 在类和方法的上面会显示相应注解 ; 如果不使用 @Documented 注解 , 则生成的文档中没有 Annotation 注解 ; 六、@Documented 元注解...---- @Inherited : 描述 注解 是否被子类继承 , 如果添加了该注解 , 则子类会自动继承父类的注解 ; 使用 @Inherited 元注解 标注 Annotation 注解 ; 使用
Hibernate注解之基本注解的注解使用 1.1. 使用注解须知 1.2. 类级别注解 1.3. 属性级别的注解 1.4. 主键相关的注解 1.5. 与非主键相关的注解 1.6. 实例 1.7....参考文档 Hibernate注解之基本注解的注解使用 使用注解须知 我们在使用注解自动创建表的时候,系统会默认为我们创建一张表Hibernate_sequence,我们可以在Hibernate.cfg.xml...与非主键相关的注解 @Version - 可以在实体bean中使用@Version注解,通过这种方式可添加对乐观锁定的支持 @Basic - 用于声明属性的存取策略: @Basic(fetch=FetchType.EAGER...默认的存取策略) @Basic(fetch=FetchType.LAZY) 延迟获取 @Temporal 这个使用来设置数据库表中显示的日期的精度,因为java中的Date属性可以对应着数据库中的三种类型...,TIME, TIMESTAMP)即是单纯的表示日期,时间,两者兼备的,默认的是两者兼备的,输出的是:2012-01-22 17:55:55 因此可以使用@Temporal来设置显示的时间的精度,这三种的表示形式如下
但这种方式只是抽了一个方法,有一种换汤不换药的感觉,虽然业务方法看起来清爽了很多,但书写代码量并没有下降,反而还多出了一个方法,这也不是我们理想中的样子。...常用注解: 除了刚刚都注解,最后再附加2个常用注解,我就直接贴图了,基本上这6个注解可以解决99%的字段,其他注解我就不贴图了,如果不满足,自己问百度。...@Validated 详解 上面,我们讲述了 @Valid 注解,现在我们来说说 @Validated 这个注解,在我看来,@Validated 是在 @Valid 基础上,做的一个升级版。...如果我们把手动校验的这段代码删除或注释掉,那么即使当我们的字段不满足规则时,方法种的程序也是能够被执行的。 比如,我们将字段值置空时,正常情况是会进行提示的。...现在,我们去掉方法参数上的 @Valid 注解和其配对的 BindingResult 对象, 然后再校验的对象前面添加上 @Validated 注解。
第一种: 创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果,代码如下: public class Task1 { public static...} } }; //创建定时器 Thread thread = new Thread(runnable); //开始执行 thread.start(); } } 第二种:...interval // 安排任务在一段时间内运行 timer.scheduleAtFixedRate(task, delay, intevalPeriod); } // end of main } 第三种:
在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景。本篇文章带大家了解一下三种场景的使用情况。...场景一 使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。...场景二 使用@ConfigurationProperties和@Bean注解在配置类的Bean定义方法上。...@Configuration注解的配置类中通过@Bean注解在某个方法上将方法返回的对象定义为一个Bean,并使用配置文件中相应的属性初始化该Bean的属性。...场景三 使用@ConfigurationProperties注解到普通类,然后再通过@EnableConfigurationProperties定义为Bean。
以上三种就是 @Transactional 注解不起作用,@Transactional 注解失效的主要原因。...@Transactional 注解不起作用原理分析 首先不了解 @Transactional 注解实现原理的可以看一下另一篇文章,@Transactional 注解实现原理,然后下面开始结合源码分析下面三种情况...第一种 @Transactional 注解标注方法修饰符为非 public 时,@Transactional 注解将会不起作用。...不进行代理调用 考虑一种情况,如下面代码所示。...没有了 @Transactional 注解代理逻辑,就无法开启事务,这也是上一篇已经讲到的。 第二种 在类内部调用调用类内部 @Transactional 标注的方法。这种情况下也会导致事务不开启。
注解基本介绍 1.1 什么是注解? 什么是注解?严谨的来说,注解提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。...Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。...注解包含在 java.lang.annotation 包中。 具体定义如下: 注解 (Annotation),也叫元数据。一种代码级别的说明。...元注解 元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。...例如: public @interface language { String value(); } 那么下面两种声明是相同的: // 第一种声明 @language("JAVA") int coderA
就用到了@DateTimeFormat注解 和 @JsonFormat 注解。...二、发现问题 在网上查阅资料的过程中,发现大部分作者给出的解释并不全面,大多数都是说,前台向后台传递数据用@DateTimeFormat注解。而后台向前台传递就用@JsonFormat注解。。...而@JsonFormat注解却可以转换这种情况下的参数。 三、对比总结及使用 @DateTimeFormat用于前台向后台 ,将传入的字符串转换为Date类型。...joda-time 2.3 ``` ② 在实体类的需要类型转换的属性上加上@JsonFormat注解...只需要@JsonFormat一个注解就可以了 2.前台向后台则需要 需求分析到底使用@JsonFormat注解 还是 @DateTimeFormat注解。
为了解决这两个问题,Spring引入了注解,通过@XXX的方式,让注解与Java Bean 紧密结合,既大大减少了配置文件的体积,又增加了Java Bean 的可读性与内聚性。...本篇文章,讲讲最重要的三个Spring注解,也就是@Autowired、@Resource和@Service。...不使用注解 先看一个不使用注解的 Spring 示例,在这个示例的基础上,再改成注解版本,这样也能看出使用与不使用注解之间的区别,先定义一个老虎类: public class Tiger { private...,Spring会自动扫描com.nnngu路径下的注解。...的注解,这个可以看一下导入注解的时候这两个注解的包名就一清二楚了 Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
讲到 注解 我们就必须知道 在Java世界中,注解的类型。 元注解 自定义注解 注解修饰的范围 注解用来修饰,类、方法、变量、参数、包 什么是元注解?...(JDK 只提供4个) 一般我们把元注解理解为描述注解的注解,元数据理解为描述数据的数据,元类理解为描述类的类… 分别是 @Target、@Retention、@Documented、@Inherited...什么是自定义注解?...除了4个元注解,其余的所有注解,都叫自定义注解 元注解详解 @Target:说明注解标记的对象,一般通过枚举ElementType 选值 可选的值有: CONSTRUCTOR: 用于描述构造器 FIELD...@Target({ElementType.TYPE,ElementType.METHOD}) //多个注解,用数组形式 含义是:该注解标记在类上、方法上 @Retention:用于描述注解的生命周期
领取专属 10元无门槛券
手把手带您无忧上云