【SpringBoot注解】@Component@Service@Repositpry@Controller@RestController...

声明Bean的注解

  1. @Component 没有明确角色的组件。泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
  2. @Service 在业务逻辑层(Service层)使用
  3. @Repositpry 在数据访问层(dao层)使用,标注一个DAO组件类。这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
  4. @Controller 用于标注控制层组件。用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。
  5. @RestController 用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。

装配bean时常用的注解

  1. @Autowired:自动导入依赖的bean
  2. @Resource(name=”name”,type=”type”):没有括号内内容的话,默认byName。与@Autowired干类似的事。
  3. @PostConstruct@PreDestroy 方法 实现初始化和销毁bean之前进行的操作

spring MVC模块注解 -- web模块常用到的注解

  1. @Controller
    定义控制器,它还允许自动检测定义在类路径下的组件(配置文件中配置扫描路径)并自动注册。
  2. @RequestMapping
    用于将url映射到整个处理类或者特定的处理请求的方法。可以只用通配符!
    @RequestMapping 既可以作用在类级别,也可以作用在方法级别。当它定义在类级别时
  3. @RequestParam
    将请求的参数绑定到方法中的参数上,有required参数,默认情况下,required=true,也就是改参数必须要传。如果改参数可以传可不传,可以配置required=false。
 @RequestMapping("/happy")
  public String sayHappy(
  @RequestParam(value = "name", required = false) String name,
  @RequestParam(value = "age", required = true) String age) {
  //age参数必须传 ,name可传可不传
  ...
  }
  1. @PathVariable
  • 该注解用于方法修饰方法参数,会将修饰的方法参数变为可供使用的uri变量(可用于动态绑定)。
  • @PathVariable中的参数可以是任意的简单类型,如int, long, Date等等。Spring会自动将其转换成合适的类型或者抛出 TypeMismatchException异常。当然,我们也可以注册支持额外的数据类型。
  • @PathVariable支持使用正则表达式,这就决定了它的超强大属性,它能在路径模板中使用占位符,可以设定特定的前缀匹配,后缀匹配等自定义格式。
@RequestMapping(value="/happy/{dayid}",method=RequestMethod.GET)
public String findPet(@PathVariable String dayid, Model mode) {
//使用@PathVariable注解绑定 {dayid} 到String dayid
}
  1. @RequestBody
  • @RequestBody是指方法参数应该被绑定到HTTP请求Body上。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以绑定自定义的对象类型
}
  1. @ResponseBody
  • @ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到HTTP response body中。
  • @ResponseBody在输出JSON格式的数据时,会经常用到。
@RequestMapping(value = "/happy", method =RequestMethod.POST)
@ResponseBody
public String helloWorld() {    
return "Hello World";//返回String类型
}
  1. @RestController
  • 控制器实现了REST的API,只为服务于JSON,XML或其它自定义的类型内容,@RestController用来创建REST类型的控制器,与@Controller类型。
  • 它避免了你重复的写@RequestMapping与@ResponseBody。
  1. @ModelAttribute
  • @ModelAttribute可以作用在方法或方法参数上,当它作用在方法上时,标明该方法的目的是添加一个或多个模型属性(model attributes)。
  • 该方法支持与@RequestMapping一样的参数类型,但并不能直接映射成请求。控制器中的@ModelAttribute方法会在@RequestMapping方法调用之前而调用。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容