1.@PostConstruct说明 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法.被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行. 2.@PreDestroy说明 被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法.被@PreDestroy修饰的方法会在destroy…
1.概述 本文我们将重点介绍Spring中 @Valid和@Validated注解的区别 . 验证用户输入是否正确是我们应用程序中的常见功能.Spring提供了@Valid和@Validated两个注解来实现验证功能,下面我们来详细介绍它们. 2. @Valid和@Validate注解 在Spring中,我们使用@Valid 注解进行方法级别验证,同时还能用它来标记成员属性以进行验证. 但是,此注释不支持分组验证.@Validated则支持分组验证. 3.例子 让我们考虑一个使用Spring B…
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明. 使用方式,例如: @PostConstruct //方式1 public void someMethod(){ ... } public @PostConstruct void someMethod(){ //方式2 ... } 1.@PostCo…
事务 事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割.例如我们的转账这个业务,就需要进行数据库事务的处理. 转账中至少会涉及到两条 SQL 语句: update Acoount set balance = balance - money where id = 'A'; update Acoount set balance = balance + money where id = 'B' 上面这两条 SQL 就可以要看成是一个事务,必…
在Spring中,主要用于管理bean的注解分为四大类:1.用于创建对象.2.用于给对象的属性注入值.3.用于改变作用的范围.4.用于定义生命周期.这几个在开发中经常接触到,也可以说每天都会遇见.其中创建对象是重点,Spring中创建对象的有四个:分别是@Component,@Controller,@Service,@Repository.对于@Component注解:把资源让Spring来管理,相当于xml中的配置的Bean.属性:value:指定Bean中的id.如果不指定value属性,默…
在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的. 但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary  的作用就出来了.下面是个简单的使用例子. 有如下一个接口 public interface Singer {    String sing(String lyrics);} 有下面的两个实现类: @Component // 加注解,让spring识别public class MetalSinge…
@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明. @PostConstruct //方式1 public void someMethod(){ ... } public @PostConstruct void someMethod(){ //方式2 ... } @PostConstruct说明 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于…
在bean的实例化过程中,也会用到一系列的相关注解. 如@PostConstruct和@PreDestroy用来标记初始化和销毁方法. 平常更多的是侧重于应用,很少会有人去了解它背后发生的事情. 今天就来看下它们的源码,这样它们对你来说就不再是黑盒子了,而且学习源码对每个技术人来说都是必经之路. 人们对事物的认知以及自己的做法,往往分为三个阶段: 1)最初看一个事物,非常复杂,简直没有一点头绪,此时很多人就会放弃. 2)过了一段时间后,发现整体来看没有想象中的那么难,此时很多人以为自己已经get…
通过java原生的@Valid注解和spring的@ControllerAdvice和@ExceptionHandler实现全局异常处理的方法: controller中加入@Valid注解: @RequestMapping(value="/addCountry", method=RequestMethod.POST) public ResponseResult addCountry(@RequestBody @Valid Country country) { return null;…
@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格.通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的. 1.第一步:倒入jar包,跟上个例子包是一样的 aspectjrt.jar aspectjweaver.jar aspectj.jar aopalliance.jar 2.第二步:创建三个类 2.1这里是 Logging.java 文件的内容.这实际上是 aspect 模块的一个示例,它定义了在…