@Data注解
作用:提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;
要使用 @Data 注解要先引入lombok。
@Transactional
作用:,通常情况下我们在需要对一个service方法添加事务时,加上这个注解,如果报错,就会启动回滚。
作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性。
@Service 服务(注入dao)
作用:标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
@Autowired
作用:自动按照类型注入。
缓存注解
缓存注解有以下三个:
@Cacheable
@CacheEvict
@CachePut
@Cacheable(value=”xxx”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 xxx 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。这里的key值就是参数
@CacheEvict 注释来标记要清空缓存的方法,当这个方法被调用后,即会清空缓存。
这里的key用来指缓存的key的,前面的 # 号代表这是一个 SpEL 表达式,此表达式可以遍历方法的参数对象。
@Component( 控制器(注入服务))
用于标注控制层,相当于struts中的action层
@Repository(value=”userDao”)
该注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
总结
@Component @Service @Repository @Controller 都是将类或接口声明为Spring上下文中的Bean(注入)
@Autowired @Resource 都是从Spring上下文(IOC容器)中获取指定的Bean对象(DI)。
@Autowired 按照byType匹配 spring第三方注解 入侵性
@Resource 先按照byName匹配,如果没找到再按照byType匹配,再没有报错,J2EE本身的东西,不具备入侵性