SpringMVC的常用注解?@Autowired 和@Resource区别是什么?

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有两个重要的属性:

nametype,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型

如果使用name属性,则使用 byName的自动注入策略,

如果使用type属性,则使用byType自动注入策略。

如果既不制定name也不制定type属性,这时将通过反射机制使用byName 自动注入策略。

猜你喜欢

转载自blog.csdn.net/qq_52963857/article/details/131701169