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

相关推荐

  1. Spring注解!!!

    2024-04-28 08:56:01       45 阅读
  2. spring 注解

    2024-04-28 08:56:01       7 阅读
  3. spring boot 注解

    2024-04-28 08:56:01       10 阅读
  4. Spring Boot】Spring Boot 注解

    2024-04-28 08:56:01       9 阅读
  5. Spring Boot注解

    2024-04-28 08:56:01       39 阅读
  6. Spring框架注解

    2024-04-28 08:56:01       32 阅读
  7. spring注解

    2024-04-28 08:56:01       9 阅读
  8. Spring Boot 注解

    2024-04-28 08:56:01       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 08:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 08:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 08:56:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 08:56:01       20 阅读

热门阅读

  1. 最短路(Dijkstra, Bellman-Ford, SPFA, Floyd)

    2024-04-28 08:56:01       12 阅读
  2. 数据结构与算法-图论-DFS/BFS

    2024-04-28 08:56:01       13 阅读
  3. 【笔记】 - Git

    2024-04-28 08:56:01       12 阅读
  4. isort库,一款超级神奇排序和格式化Python工具

    2024-04-28 08:56:01       15 阅读
  5. 解决eureka服务注册名报错

    2024-04-28 08:56:01       14 阅读
  6. 数字化转型之路:企业信息化建设的关键步骤

    2024-04-28 08:56:01       14 阅读
  7. HTML实体编码

    2024-04-28 08:56:01       11 阅读
  8. 多进程控制

    2024-04-28 08:56:01       21 阅读
  9. C++ 如何高效的使用 STL 容器?

    2024-04-28 08:56:01       17 阅读
  10. 数据库系统工程师之数据结构

    2024-04-28 08:56:01       17 阅读
  11. 力扣经典150题第四十五题:存在重复元素 II

    2024-04-28 08:56:01       15 阅读