spring系列的常用注解

1.IOC的注解
        声明bean的注解:
              @Component:这是一个通用注解,标注让spring容器管理,功能可分成以下三个子注解                        @Controller:用于控制层,标记该类是一个控制类。
                      @Service:用于业务层,标记该类是一个业务处理类。
                      @Repository:用于Dao层。

              @value:值类型的注入
                                1)实体类属性上:通过反射field赋值
                                2)方法上:通过set反射赋值
              @Scope(" ") : 用于指定单例或者多例,默认是单例 (singleton:单例 ,prototype:多例)

2.DI的注解:
        @Autowired(由spring提供):默认以类型进行查找。自动配置bean,但匹配多个类型一致的对象,将无法选择具体注入哪个对象,而@Qualifier(" ") 可以告诉spring容器自动装配哪个名称的对象。
        @Resource(jdk):默认以名称进行查找
                              手动注入,指定注入哪个名称的对象,@Resource注解是jdk1.6后才有。

3.声明式事务:@Transactional (通常用在service层)
        1)事务属性:传播行为,隔离级别,回滚,只读,过期
        2)声明式事务管理的底层是建立在 AOP 的基础之上的;优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件(pom.xml)中做相关的事务规则声明

MVC:
        @requestMapping 用于请求 url 映射。
        @RequestBody 注解实现接收 http 请求的 json 数据,将 json 数据转换为 java 对象。
        @ResponseBody 注解实现将 controller 方法返回对象转化为 json 响应给客户

@RequestParam作用:把请求中指定名称的参数给控制器中的形参赋值。
        属性:value : 要求一定要有指定名字的参数
                   required: 是否一定要有这个参数,默认是true ,
                   defaultValue :如果没有携带指定的参数,那么就把默认值赋值给方法的形参。

@RequestBody
        注意: get 请求方式不适用。
        作用:
                1. 获取请求体(针对post请求),赋值给方法的形参,如果拿到请求体,打印结果是这样的:username=admin & password=123
                2. 把客户端提交的json数据直接转化成JavaBean对象
        属性:required : 默认值是true, 要求必须有请求体,此时get请求提交上来会报错,如果修改成false, 则get请求可以提交上来,但是没有数据,请求体为null

@RequestParam 作用:要求客户端提交的参数一定要有某个指定的名称,并且它可以把指定名称的参数赋值给方法的形参
        属性:value : 要求一定要有指定名字的参数
                  required: 是否一定要有这个参数,默认是true ,
                  defaultValue :如果没有携带指定的参数,那么就把默认值赋值给方法的形参。

@PathVariable 作用:用来截取地址里面的数据,主要是配合RestFul风格使用
        属性:value 和 name: 表明了拿地址里面的什么占位名字的数据赋值给方法的参数。

@RequestHeader 作用:用于获取请求头
        属性:name 和 value: 请求头的名字
                   required: 是否要求一定要有请求头
                   defaultVaule : 如果没有请求头,那么就把这个默认值赋值给方法的形参。

springBoot:
        @ComponentScan: 扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。等价于<context:component-scan>的xml配置文件中的配置项。(启动类上)
        @Autowired: 是spring的自动装配,这个注解可以用到构造器,变量域,方法,注解类型上。
        @Transactional:可以声明事务,可以添加在类上或者方法上。且事务的开启只能在public 方法上。
        @ControllerAdvice 和 @ExceptionHandler 配合完成统一异常拦截处理。

控制层:
        @RestController 是@Controller 和@ResponseBody的结合,一个类被加上@RestController 注解,数据接口中就不再需要添加@ResponseBody。
        @RequestMapping(value=" ",method= RequestMethod.GET ),我们都需要明确请求方式。

业务层:
        @Service:这个注解用来标记业务层的组件,我们会将业务逻辑处理的类都会加上这个注解交给spring容器。
        @Resource和@Autowired一样都可以用来装配bean,都可以标注字段上,或者方法上。

持久层:
        
@Repository注解类作用于DAO对象,管理操作数据库的对象。
        @Component是通用注解,其三个子注解是这个注解的拓展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值