SpringMVC中各个常⽤注解的作⽤
1、@Controller⽤于标注Controller层,即控制层,它⽤于标记在⼀个类上,使⽤@Controller标记的类就变成⼀个SpringMVC Controller对象。分发处理器将会扫描使⽤了该注解的类的⽅法。通俗理解就是,被Controller标注的类就是⼀个控制器,这个类中的⽅法就是相应的动作。
与@Controller相对应,@RequestMapping是⼀个⽤来处理请求地址映射的注解,可⽤于类或⽅法上。⽤于类上,表⽰该类中的所有响应请求的⽅法都会以该地址作为⽗路径,作⽤到⽅法上时,则会在已有⽗路径的基础上添加相应路径
2、@Service⽤于标注业务层
3、@Repository⽤于标注数据访问组件,即DAO组件
4、@Component⽤于泛指组件,当组件不好归类的时候,可以使⽤Component进⾏标注resource和autowired注解的区别
5、@Autowired顾名思义,就是⾃动装配,其作⽤是为了消除代码Java代码⾥⾯的getter/setter与bean属性中的property。当Spring发现@Autowired注解时,将⾃动在代码上下⽂中到和其匹配(默认是类型匹配)的Bean,并⾃动注⼊到相应的地⽅去。当Spring不到bean时会抛出异常,将@Autowired注解的required属性设置为false 不会抛出异常,会显⽰null
当有多个bean对应时,Spring因为不能判定应该使⽤哪个bean同样会抛出异常,此时使⽤@Qualifier("class-name")注解,即可指定bean
6、@Resource注解,默认通过name属性去匹配bean,当不到时再按type去匹配,当指定了name或者type则根据指定的类型去匹配bean,任何⼀个不匹配⾖浆报错
@Autowired默认按照byType⽅式进⾏bean匹配,@Resource默认按照byName⽅式进⾏bean匹配
@Autowired是Spring的注解,@Resource是J2EE的注解,这个看⼀下导⼊注解的时候这两个注解的包名就⼀清⼆楚了
Spring属于第三⽅的,J2EE是Java⾃⼰的东西,因此,建议使⽤@Resource注解,以减少代码和Spring之间的耦合。
7、component-scan标签默认情况下⾃动扫描指定路径下的包(含所有⼦包),将带有@Component、@Repository、@Service、
@Controller标签的类⾃动注册到spring容器。对标记了 Spring's @Required、@Autowired、JSR250's @PostConstruct、
@PreDestroy、@Resource、JAX-WS's @WebServiceRef、EJB3's @EJB、JPA's @PersistenceContext、@PersistenceUnit等注解的类进⾏对应的操作使注解⽣效(包含了annotation-config标签的作⽤)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论