mybatis的@注解说明
注解方式是MyBatis的一种比较简单容易实现的方式,相对起xml文件方式,更适合简单的SQL语句。
注解式开发
@Repository 仓库一般存在于dao层 也就是将DAO类声明为Bean
(即mabatis的mapper接口)声明为Bean -->bookdao
@Service 服务的意思 **@Service **注解用于类上,标记当前类是一个service类, 加上该注解会将当前类自动注入到spring容器中,不需要再在spring.xml文件定义bean了。
通常作用在业务层 --> bookBiz
@Constroller 通常作用在控制层,将在springMVC中使用
@Component 是一个泛化的概念,仅仅表示spring中的一个组件(Bean),可以作用在任何层次 。
也是万能注解,无法归类就用这个注解
@Scope 范围的意思,就是表示范围多列模式和单列模式
@Autowired 将自动在代码上下文与其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方
@Resource 根据名字去匹配,如果没有名字就根据类型去匹配, 一般使用Resource注入
@Resource的装配顺序:
1、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
2、指定了name或者type则根据指定的类型去匹配bean
3、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错
@Transactional 注解配置事务,个人感觉写XML配置声明式事务更加简单
@Autowired和@Resource两个注解的区别:
1 @Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
2 @Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。