Spring中常用的注解
-
@Component:使用在普通类上用于实例化Bean,如果不指定value名称,由spring提供默认名称:类名的首字母小写,以下类同
-
@Controller:使用在Controller层上用于实例化Bean
-
@Service:使用在service层类上用于实例化Bean
-
@Repository:使用在dao层类上用于实例化Bean
-
@Value:简单类型属性注入【包括字符串】
-
@Autowired:引用类型属性注入,默认是按类型自动装配bean
-
@Qualifier+@Autowired:引用类型属性注入,需要在引用属性上联合使用注解@Autowired 与@Qualifier。@Qualifier 的 value 属性用于指定要匹配的 Bean 的 id 值。类中无需 set 方法,也可加到 set 方法上
-
@Resource:该注解既可以按名称匹配Bean,也可以按类型匹配 Bean。 默认是按名称注入。原理:判断@Resource注解括号中的name属性是否为空,如果为空:看spring容器中的bean的id与@Resource要注解的那个变量属性名是否相同,如相同,匹配成功;如果不相同,看spring容器中bean的id对应的类型是否与@Resource要注解的那个变量属性对应的类型是否相等,若相等,匹配成功,若不相等,匹配失败
-
@Configuration:用于指定当前类是一个Spring 配置类,当创建容器时会从该类上加载注解
-
@ComponentScan:用于指定 Spring 在初始化容器时要扫描的包
-
@Bean:使用在方法上,标注将该方法的返回值存储到 Spring 容器中,@Bean如果不指定对象的名称,默认对象名称是方法名
-
@PropertySource:用于加载.properties 文件中的配置
-
@Import:用于导入其他配置类
SpringMVC中常用的注解
-
@Controller:使用在Controller层上用于实例化Bean
-
@ResponseBody :作用于方法上,可以将整个返回结果以某种格式返回,如果是字符串则直接将字符串写到客户端;如果是一个对象,此时会将对象转化为json串然后写到客户端
-
@RestController:相当于@Controller + @ResponseBody
-
@RequestMapping :建立请求URL和处理方法之间的对应关系,既可以在方法上使用又可以在类上使用,如果这些请求具有相同的 URI 部分,则这些相同的 URI,可以被抽取到注解在类之上的@RequestMapping 的 value 属性中。此时的这个 URI 表示模块的名称。URI 的请求是相对于 Web 的根目录
- @RequestMapping的属性:
- value属性:定义request请求的映射地址
- method属性:定义地request址请求的方式,包括【GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.】默认接受get请求,不同的请求方式,都有相应的注解,如@PutMapping、@PostMapping、@DeleteMapping和@GetMapping
- params属性:指定限制请求参数的条件:
- @RequestMapping的属性:
-
@PathVariable:用于接收路径参数,使用{参数名称}描述路径参数,常用于Restful风格的参数请求中,必须加该注解,不然报错,路径变量名和形参名一样, value 可以不写
- 如果请求的参数和控制器方法中的参数不一致,可以指定
- 如果请求的参数和控制器方法中的参数不一致,可以指定
-
@RequestParam:用来接收url地址传参或者表单传参,当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定
-
@Requestbody:用于接收json数据
总结:
- 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
- 如果发送非json格式的请求参数,选用@requestParam接收请求参数
- 采用Restful风格进行开发时,当参数较少时,用@PathVariable接收请求路径参数