spring常用注解

一: 组件类注解

1、注解类介绍

  • @Component :标准一个普通的spring Bean类。
  • @Repository:标注一个DAO组件类。
  • @Service:标注一个业务逻辑组件类。
  • @Controller:标注一个控制器组件类。 这些都是注解在平时的开发过程中出镜率极高
    @Component、@Repository、@Service、@Controller实质上属于同一类注解,用法相同,功能相同,区别在于标识组件的类型。@Component可以代替@Repository、@Service、@Controller,因为这三个注解是被@Component标注的。

2、举例详解

  • (1)当一个组件代表数据访问层(DAO)的时候,我们使用@Repository进行注解。
  • (2)当一个组件代表业务层时,我们使用@Service进行注解。
  • (3)当一个组件作为前端交互的控制层,使用@Controller进行注解。

3、总结注意点

  • (1)被注解的java类当做Bean实例,Bean实例的名称默认是Bean类的首字母小写,其他部分不变。@Service也可以自定义Bean名称,但是必须是唯一的!

  • (2)尽量使用对应组件注解的类替换@Component注解,在spring未来的版本中,@Controller,@Service,@Repository会携带更多语义。并且便于开发和维护!

  • (3)指定了某些类可作为Spring Bean类使用后,最好还需要让spring搜索指定路径,在Spring配置文件加入如下配置:

    
    
    
    

二:装配bean时常用的注解

1、注解介绍

  • @Autowired:属于Spring 的org.springframework.beans.factory.annotation包下,可用于为类的属性、构造器、方法进行注值
  • @Resource:不属于spring的注解,而是来自于JSR-250位于java.annotation包下,使用该annotation为目标bean指定协作者Bean。
  • @PostConstruct 和 @PreDestroy 方法:实现初始化和销毁bean之前进行的操作

2、总结

  • (1)相同点
    @Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。
  • (2)不同点
    a:提供方 @Autowired是Spring的注解,@Resource是javax.annotation注解,而是来自于JSR-250,J2EE提供, 需要JDK1.6及以上。
    b :注入方式 @Autowired只按照Type 注入;@Resource默认按Name自动注入,也提供按照Type 注入;
    c:属性
    @Autowired注解可用于为类的属性、构造器、方法进行注值。默认情况下,其依赖的对象必须存在(bean可用),如果需要改变这种默认方式,可以设置其required属性为false。
    d:@Autowired注解默认按照类型装配

补充:Spring中 @Autowired注解与@Resource注解的区别

三:spring MVC模块注解

1、web模块常用到的注解

  • @Controller :表明该类会作为与前端作交互的控制层组件,通过服务接口定义的提供访问应用程序的一种行为,解释用户的输入,将其转换成一个模型然后将试图呈献给用户。
  • @RequestMapping : 这个注解用于将url映射到整个处理类或者特定的处理请求的方法。可以只用通配符!
  • @RequestParam :将请求的参数绑定到方法中的参数上,有required参数,默认情况下,required=true,也就是改参数必须要传。如果改参数可以传可不传,可以配置required=false。
  • @PathVariable : 该注解用于方法修饰方法参数,会将修饰的方法参数变为可供使用的uri变量(可用于动态绑定)。
  • @RequestBody : @RequestBody是指方法参数应该被绑定到HTTP请求Body上。
  • @ResponseBody : @ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到HTTP response body中。
  • @RestController :控制器实现了REST的API,只为服务于JSON,XML或其它自定义的类型内容,@RestController用来创建REST类型的控制器,与@Controller类型。
  • @ModelAttribute :@ModelAttribute可以作用在方法或方法参数上,当它作用在方法上时,标明该方法的目的是添加一个或多个模型属性(model attributes)。

四.java配置类相关注解

@Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上)

@Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)

@Configuration 声明当前类为配置类,其中内部组合了@Component注解,表明这个类是一个bean(类上)

@ComponentScan 用于对Component进行扫描,相当于xml中的(类上)

@WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替代这两个注解

@Value注解

@Value 为属性注入值

你可能感兴趣的:(spring常用注解)