Spring: 常见的annotation有什么?

什么是注解?干什么用的?怎么使用?
注解,是一种用来描述数据的数据。
比如说@override 表示我们重载父类函数 如果我们不用这个注解 程序也能执行。但是我们加了这个注解 代表我告诉编译器这个方法 是一个重写的方法。如果父类中不存在该方法 就会报错(也能避免自己写的时候的typo)----就是说我们用注解 就是为了告诉JVM我们这个是干什么的 从而提高代码可读性和程序健壮性。(注解本身不含逻辑 他就是一个声明 来说明这个被注释的地方 含有某种特定的 逻辑)
注解可用在类 方法 参数 变量 构造器 声明特殊修饰符等等等等。

在spring中的bean有什么含义呢?
之前 没有注解以前 如果我们要声明一个bean 只能通过XML配置的方式。(写入XML文件中)

<bean id="demoService" class="com.chenshuyi.DemoService"/>

但是 有了注解 我们可以直接写在代码上

@Service
public class DemoService{
}

好处是啥?代码少了,不用分离了(因为像这种注解 是和代码联系非常紧密的 因此离代码块近一点比较好 如果没有那么紧密的 单独放一个XML文件也还行(比如说那种配hi全局变量))

Spring中常见的注解:
**@Autowired:**此注解用于构造方法、字段、setter方法和注解类型。显示声明依赖,根据type来autowiring, 默认注入是必须的。(这个注解会为我们注入一个定义好的Bean)
@Qualifier():
此注解是和@Autowired一起使用的。使用此注解可以让你对注入的过程有更多的控制,用@Qulifier指定要绑定的bean的名称。当一个type有多个bean时,使用@Autowired的时候需要配合上@Qulifier才能正常。
@Scope():这个会单开一个文章来写
@bean
@Configuration: 指定Spring扫描注解的package。如果没有指定包,那么默认会扫描此配置类所在的package。
Stereotype注解:(Component-Controller-Service-Repository)
@Component: 此注解使用在class上来声明一个Spring组件(Bean), 将其加入到应用上下文中。
@Controller: 此注解使用在class上声明此类是一个Spring controller,是@Component注解的一种具体形式。
@Service: 此注解使用在class上,声明此类是一个服务类,执行业务逻辑、计算、调用内部api等。是@Component注解的一种具体形式。
@Repository:此类使用在class上声明此类用于访问数据库,一般作为DAO的角色。
此注解有自动翻译的特性,例如:当此种component抛出了一个异常,那么会有一个handler来处理此异常,无需使用try-catch块。

Spring MVC 和 REST:
@Controller
@RequestMapping: 可以用在class和method上,用来映射web请求到某一个handler类或者handler方法上。当此注解用在Class上时,就创造了一个基础url,其所有的方法上的@RequestMapping都是在此url之上的。可以使用其method属性来限制请求匹配的http method。
后面我们引入了一系列的变种:
@GetMapping
@PostMapping
@PutMapping
@PatchMapping
@DeleteMapping

@PathVariable:

RequestMapping("/users/{uid}")
public String execute(@PathVariable("uid") String uid){
}

一大堆用在Http handler方法的参数上面 --相关的annotation:
@requestAtribute
@requestBody
@RequestHeader
@RequestParam
@RequestBody
@RequestStatus

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值