注解的使用:开发中我们可以使用注解 取代 xml配置文件。

controller层

        类上:

        @RestController:@RestController是@Controller和@ResponseBody两者的结合,使用这个注解后该controller的所有方法都会返回json格式的数据,因为@ResponseBody的作用就是把返回的对象转换为json格式,并把json数据写入response的body中,前台收到response时就可以获取其body中的json数据了。

       属性上:

        @Resource:@Resource有两个属性是比较重要的,分别是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。

        @AutoWired:@AutoWired是spring的注解,Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier或@Primary注解一起来修饰。@Resource默认按名称方式进行bean匹配,@Autowired默认按类型方式进行bean匹配。 

@Resource注解和@Autowired注解类似,都用来声明需要自动装配的bean,区别在于@Autowired是类型驱动的注入,而@Resource是名称驱动的注入,所以前者存在多bean问题,而后者,只要保证bean命名唯一就不会出现多bean的问题。

关于Resource注解,官方描述为,一般用在类属性或者setter方法上声明属性需要自动装配,如果在Resource注解中指定了bean的名称,则Spring会只按注解中的name属性查找合适对象,然后进行装配。如果注解中没有指定名称,先按类属性的变量名查找,如果还是未找到,则按类型进行查找。

        方法上: 

        @PostResource:

       @GetResource:

参数前:

    @RequestBody:@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(即请求体中的数据的);
    @Validated:Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等功能上两个有所不同

实体类

        类上:

   @Data : 注在类上,提供类的getsetequals、hashCode、canEqual、toString方法,@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。

   @AllArgsConstructor : 注在类上,提供类的全参构造

   @NoArgsConstructor : 注在类上,提供类的无参构造

   @EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法

   @Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log

        @TableName:@TableName是表名注解。里面有一些属性。一般这个属性用的比较多。映射实体类和表名

        属性上:

         @Setter : 注在属性上,提供 set 方法

   @Getter : 注在属性上,提供 get 方法

    @NotNull:所有不能为空的属性上,需要标记为@NotNull

    @TableField:MP会自动将数据库中的下划线命名风格转化为实体类中的驼峰命名风格

    @TableId:作用是指定实体类属性和表中的主键字段对应

Service层

        类上:

                @Service:@Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。

其它类上:

               @Slf4j:@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log。

private final Logger logger = LoggerFactory.getLogger(当前类名.class);

就可以用@Slf4来代替。

                @SpringBootApplication:@SpringBootApplication这个注解是这三个注解的复合注解

  1. SpringBootConfiguration

  2. EnableAutoConfiguration   开启自动配置功能

  3. ComponentScan()

                @Configuration+@Bean:

                        @Import:@Import注解,功能就是和Spring XML 里面 的 一样. @Import注解是用来导入配置类或者一些需要前置加载的类.

                       @Mapper:@Mapper注解:作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类。添加位置:接口类上面。如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan

                       @MapperScan:作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。添加位置:是在Springboot启动类上面添加,

                        @ControllerAdvice:@ControllerAdvice是@Controller注解的一个增强,这个注解是Spring里面的东西,可以处理全局异常。当然在Spring Boot中也可以使用,但是Spring Boot中有它全自动化配置的异常处理,因为是全自动化的,因此也可以自己定制,比如定制它的异常页面,异常信息提示,异常视图。

                        @ExceptionHandler:Spring的@ExceptionHandler可以用来统一处理方法抛出的异常

                        @ResponseBody:@ResponseBody的作用其实是将java对象转为json格式的数据,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中。

                        @ResponseStatus:@ResponseStatus的作用就是为了改变HTTP响应的状态码

                        @Component:因为在持久层、业务层和控制层中,分别采用@Repository、@Service和@Controller对分层中的类进行凝视,而用@Component对那些比较中立的类进行凝视,因为不清楚这个类是属于哪个层面,所以就用@Component。



 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值