注解 -- 10




概述上一篇日志中,我们介绍了 Retryer 类,及可以用来方便的创建 Retryer 的强大工具类 RetryerBuilderguava 重试工具库 -- RetryerRetryer 创建工具 -- RetryerBuilder 本篇日志中,我们通过面向切面结合 guava 的这个强大的工具类,来实现只需要添加一行注解即可的自动重试机制 注解我们的注解旨在通过简单的参数配置常用的重试策略:@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface TechlogRetryer { long waitMsec() default 0; Class[] retryThrowable() default {}; long maxDelayMsec() default 0; int maxAttempt() default 0; }  切面我们以上面的注解为切点构造一个切面,实现对方法的自动处理@Aspect @Service public class TechlogRetryerAspect { private static final Logger LO
#技术帖    #技术分享    #spring    #aop   
概述上一篇日志中,我们介绍了 Spring3.1 开始提供的通过配置来让 Spring 在不同的环境中创建和加载不同的 BeanSpring3.1 新特性 -- 为不同的环境配置不同的 profile事实上,有时我们需要更细粒度的自定义配置,只有当满足某个特定条件时才创建和加载某个 bean,比如某个 bean 依赖于另一个 bean 的创建,如果另一个 bean 没有创建,就忽略当前 bean,或者需要通过环境变量来动态控制某个 bean 是否需要被创建 条件化配置 bean -- @Conditional 注解Spring4 引入了一个新的 @Conditional 注解,他可以用在带有 @Bean 注解的方法上,只有 @Conditional 给定的条件为 true,才会创建相应的 Bean Condition 接口@Conditional 需要传入一个 class 对象,对应的类是任何实现了 Condition 接口的类
#技术帖    #配置    #龙潭书斋    #java   

200x200


概述在我们的项目中,通常需要对各个方法实现 log 打印、上报监控数据、上报调用状态等等,这些通用的过程如果我们在每一个方法中都手动去添加是一个非常枯燥和容易出错的任务针对这样的场

#技术帖    #技术分享    #log    #java   
概述java 注解也被称为“元数据”,他是 jdk1.5 引入的 java 特性java 注解可以用于创建文档、跟踪代码依赖性、甚至基本的编译时、运行时检查,它可以灵活的实现模板代码的生成,或者为程序的相关部分引入额外信息注解以 @ 符号 + 注解名为标识在代码中存在,编译器在编译期自动加载它们的代码到相应的位置使用 java5 内置注解java5 的 java.lang 包中内置了三种注解:@Override -- 标识当前的方法将覆盖父类中的方法,虽然在实现覆盖时并不要求必须加上该注解,但该注解可以强制检查覆盖的完成,这样编译器可以在你拼写错误时发出错误提示@Deprecated -- 标识已经废弃的元素,一旦程序员使用了这些元素,编译器会发出警告@SuppressWarnings -- 关闭不当的编译器警告 元注解如果要创建一个注解,就需要使用元注解了,所谓的元注解,就是注解其他注解的注解,也就是在定义其他注解时需要使用的注解,他们标识了自定义注解的行为java5 定义了下面五个元注解中的前四个,java8 则定义了最后一个元注解:@Tar
#读书笔记    #技术帖    #龙潭书斋    #java   
概述上一篇日志中,我们介绍了使用注解代替传统的 xml 进行依赖注入编程:Spring 3.0 依赖注入的注解实现然而,我们还是必须要提供 ApplicationContext.xml 来进行整个项目的初始化本篇日志中,我们介绍一下如何将一切 xml 配置全部用 java 代码配合相应的注解完成 使用 @Configuration、@ComponentScan 和 @Bean 实现 bean 的自动装载Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的。过去,Spring 允许开发人员使用基于 XML 的配置,通过利用应用程序上下文 XML 文件来管理 bean 依赖性尽管使用 XML 配置较为简单和便捷,但仍有另外一种方法可定义 bean 及其依赖项。这种方法也称为基于 Java 的配置。不同于 XML,基于 Java 的配置使您能够以编程方式管理 
#技术帖    #xml    #config    #配置   
概述上一篇日志中,我们讲解了如何创建并使用切面,AspectJ5 引入了使用注解来创建切面的新特性使用注解的方式定义切面,为应用程序带来了非常大的便捷性,也让代码更加美观在学习了上一篇日志中使用 xml 定义切面以后,这一节中的介绍会让你觉得非常简单Spring 面向切面实例讲解 为了支持使用注解定义面向切面的功能,需要在 xml 中写入:<aop:aspectj-autoproxy/> <!-- 支持面向切面注解 -->  前置切面和后置切面还记得上一篇日志中的 Audience 类吗?现在我们只需要为他的每个方法都加上一个注解,而舍弃冗长的 xml:package com.techlog.test.service; import org.aspectj.lang.annotation.*; /** * Created by techlog on 16/3/25. */ @Aspect public class Audience { @Pointcut("execution(* com.techlog.test.service.Performer.perform(..))") // 定义切点 public
#技术帖    #web    #龙潭书斋    #framework   
概述Spring 的依赖配置方式与 Spring 框架的内核自身是松耦合设计的然而,直到 Spring 3.0 以前,使用 XML 进行依赖配置几乎是唯一的选择Spring 3.0 的出现改变了这一状况,它提供了一系列的针对依赖注入的注解,这使得 Spring IoC 在 XML 文件之外多了一种可行的选择想要启用这些注解首先需要在配置文件中加入<context:component-scan base-package=”com.mypackage”/>  @Repository、@Service、@Controller 和 @Component 注解实现将类标识为 bean@Repository 注解@Repository 注解用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean如我们上篇日志中的那样:SpringMVC 应用 JDBC 访问数据库 Spring 在容器初始化时将自动扫描 base-package 指定的包及其子
#技术帖    #controller    #mvc    #龙潭书斋   
概述上一篇日志中,我们介绍了如何把指定模式的 URL 映射到具体的 Controller 和 action 上,接下来我们就需要了解怎么获取请求中的数据在上一篇日志中,我们已经看到绑定 URL 模式中的数据的 PathVariable 注解,本篇日志中我们介绍其他几个用于绑定数据的注解 数据绑定相关注解数据绑定相关注解注解意义RequestParam绑定单个请求数据,可以是URL中的数据,表单提交的数据或上传的文件PathVariable绑定URL模板变量值CookieValue绑定Cookie数据RequestHeader绑定请求头数据ModelAttribute绑定数据到ModelSessionAttributes绑定数据到SessionRequestBody用来处理Content-Type不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等RequestPart绑定 “multipart/data” 数据,并可以根据数据类型进项对象转换 Spring 的传入参数SpringMVC 支持多种方式将客户端中的数据传送到 Contro
#技术帖    #mvc    #技术分享    #framework   



京ICP备15018585号