spring的常用注解

目录

1.前言

2.web url映射

2.1@RequestMapping

2.2PostMapping

2.3GetMapping

3.参数接受和接口响应

3.1@RequestParam

3.2@RequstBoby

3.3@ResponseBoby

3.4@RestController

4.bean的存储

4.1@Controller

4.2@Service

4.3@Repository

4.4@Compontent

4.5@Configuration

4.6@Bean

5 bean的获取

5.1@Autowired

5.2@Qualifier

5.3@Resource

5.4常见面试题


1.前言

  我们在学习spring的时候,经常会用到注解。那么spring都有哪些注解呢?它是一种为程序代码提供元数据信息的标记。在Java中,注解以@开头,可以附加到类,方法,字段或者其他代码元素上,用于提供额外的信息或指示编辑器解释器或其他工具对这些代码元素进行特殊处理。接下来,我将介绍一些常见的注解。

2.web url映射

2.1@RequestMapping

由上图我们可以知道,该注解既可以作用于方法上,也可以作用于类上。是一种运行时注解,它实现了@Documented和@Mapping两个注解。我们可以通过它来写上url映射的地址,前端的url和它要交互得名字一样。该注解可以实现任意http请求的方法,包括get和post方法。

2.2PostMapping

它只能处理post请求的方法。

2.3GetMapping

它只能处理get请求方法

3.参数接受和接口响应

3.1@RequestParam

获取请求中的参数

3.2@RequstBoby

获取请求中的数据,一般是json形式

3.3@ResponseBoby

用于定义服务器向客户端响应的是数据格式。一般配上@Controller一起使用

3.4@RestController

 

实现了@ResponBoby和@Controller注解。使用这一个可以代替这两个的使用。

告诉spirng这是一个处理器,可以处理http请求,并且可以返回数据。

4.bean的存储

4.1@Controller

控制器存储,将对象存储到spring中并且告诉它这是一个控制器。它控制Service层

4.2@Service

服务存储,一般放地是业务逻辑类的代码。它控制的是Mapper层

4.3@Repository

仓库存储,用于表示数据访问层,一般我们用MyBatis框架提供的@Mapper注解来表述数据访问层。

4.4@Compontent

这属于是一个元注解,就是注解其它类。@Controller和@Service这些注解都实现了该注解。这些注解被称为@Compontent的衍生注解

4.5@Configuration

这是一个配置存储的注解。

4.6@Bean

方法注解,这个注解主要是解决Spring MVC中的两个问题

1.使用外部包里的类,没办法添加类注解

2.一个类需要多个对象,比如多个数据源

而@Bean就可以解决这些问题

我们可以通过代码演示一下这个是怎么用的。

首先我们定义一个用户。并且用@Bean来注解一下。

 @Bean
    public User user(){
       User user = new User();
       user.setAge(18);
       user.setName("zhangsan");
       return user;
    }

然后我们来尝试获取一下:

public static void main(String[] args) {
		ApplicationContext context = SpringApplication.run(DemoApplication.class, args);
		User user = context.getBean(User.class);
		System.out.println(user);
	}

运行以后发现出问题了,不行。

 这是因为@Bean注解要配合其它注解使用,我们在类上加一个@Component。

@Component
public class TestController {
   @Bean
    public User user(){
       User user = new User();
       user.setAge(18);
       user.setName("zhangsan");
       return user;
    }
}

5 bean的获取

5.1@Autowired

类的注入,直接获取到。

@Autowired
    private User user;

5.2@Qualifier

指定要注入的bean对象,在@Qualifier的value属性中,指定注入bean的名称它不能单独使用,必须和@Autowired一起使用。

5.3@Resource

按照bean的名称注入,通过name属性指定要注入的bean的名称。

5.4常见面试题

@Autowired和@Resource的区别:

1.@Autowired是由spring框架提供的注解,而@Resource是由jdk提供的

2.@Autowired默认是按照类型注入,而@Resource是按照名称获取的,相比于@Autowired来说,@Resource支持更多的参数设置,例如name设置,根据名称获取bean

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老cu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值