SpringMVC的常用注解?
@Component: 会被spring容器识别,并转为bean
@Repository: 对Dao实现类进行注解
@Service: 对业务逻辑层进行注解
@Controller: 表明这个类是Spring MVC里的Controller,将其声明为 Spring的一个Bean,DispatchServlet会自动扫描注解了此注解的类,并将 Web请求映射到注解了@RequestMapping的方法上
@RequestMapping: 用来映射Web请求(访问路径和参数)、处理类和方法的,它可以注解在类和方法上,注解在方法上的@RequestMapping路径会继承注解在类上的路径
@RequestBody: 可以将整个返回结果以某种格式返回,如json或xml格式
@PathVariable: 用来接收路径参数,如/news/001,可接收001作为参数,此注解放置在参数前
@RequestParam:用于获取传入参数的值
@RestController:是一个组合注解,组合了@Controller和 @ResponseBody,意味着当只开发一个和页面交互数据的控制的时候,需要使用此注解
@Autowired 和@Resource区别是什么?
共同点:
两者都可以写在字段和setter方法上
两者如果都写在字段上,那么就不需要再写setter方法
区别:
@Autowired注解是按照类型(byType)装配依赖对象,
当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中,如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。
@Resource默认按照ByName自动注入。
@Resource有两个重要的属性:
name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
如果使用name属性,则使用 byName的自动注入策略,
如果使用type属性,则使用byType自动注入策略。
如果既不制定name也不制定type属性,这时将通过反射机制使用byName 自动注入策略。