记录一下公司项目遇到的一些注解,长期更新
文章目录
一些注解
@Resource
默认按byName的规则注入bean
缓存
@Cacheable
可以标记在方法和类上。标记在类上代表类中所有方法都支持缓存。对于一个支持缓存的方法,Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。Spring在缓存方法的返回值时是以键值对进行缓存的,值就是方法的返回结果。
Cacheable
可以指定3个属性value
、key
和condition
value
指定Cache的名称,可以是一个Cache也可以是一个Cache数组
key
指定生成结果对应的key,支持SpringEL表达式
condition
默认为空,表示将缓存所有的调用情形。true
代表开启缓存,false
代表不使用缓存
@CacheEvict
标注在需要清除缓存元素的方法或类上。标记在类上代表类中所有的方法的执行都会触发缓存的清除操作。
CacheEvice
可以指定5个属性value
、key
和condition
,与Cacheable
类似,还有两个新属性allEntries
、beforeInvocation
allEntries
为true时直接清除缓存所有元素,忽略指定key
beforeInvocation
为true时,将在调用该方法前清除缓存
@Caching
可以同时在一个方法或者类上同时指定多个Spring Cache相关的注解。拥有三个属性cacheable
、put
和evict
,分别对应Cacheable
、CachePut
和CacheEvict
代替xml配置
@Service、@Repository、@Controller、@Component
分别对应业务层、持久层、控制层和其他一些模糊组件
相当于xml配置中的
JSON字符串
@JsonInclude
注解于类头,可以对实体类引用按自动规则过滤实体类生成的json数据,也可以通过实现Serializable接口来标识此注解,用于对类的最终json结构进行过滤处理
值的可选项有四个:
- Include.Include.ALWAYS (
Default
/ 都参与序列化) - Include.NON_DEFAULT(当
Value
为默认值的时候不参与,如Int a;
当a=0
的时候不参与) - Include.NON_EMPTY(当
Value
为“”
或者null
不输出) - Include.NON_NULL(当
Value
为null
不输出)