Spring 注解 和SpringMVC注解

这篇具有很好参考价值的文章主要介绍了Spring 注解 和SpringMVC注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring和Spring MVC是两个紧密相关但又不同的框架,它们都使用一系列注解来简化开发。以下是Spring和Spring MVC中一些常用的注解:

### Spring 注解:

1. **`@Component`:**
   - 用于将类标记为Spring容器中的组件,由Spring自动扫描并进行管理。
   - 具体的派生注解有`@Service`、`@Repository`、`@Controller`等,用于表示不同类型的组件。

2. **`@Autowired`:**
   - 用于进行依赖注入,将一个bean注入到另一个bean中。
   
   ```java
   @Service
   public class MyService {

       private final MyRepository repository;

       @Autowired
       public MyService(MyRepository repository) {
           this.repository = repository;
       }
   }
   ```

3. **`@Configuration`:**
   - 用于定义配置类,替代XML配置文件。
   
   ```java
   @Configuration
   public class AppConfig {

       @Bean
       public MyService myService() {
           return new MyService();
       }
   }
   ```

4. **`@Value`:**
   - 用于注入外部配置属性的值。
   
   ```java
   @Service
   public class MyService {

       @Value("${my.property}")
       private String myProperty;
   }
   ```

### Spring MVC 注解:

1. **`@Controller`:**
   - 用于标记一个类作为Spring MVC的控制器。
   
   ```java
   @Controller
   public class MyController {

       @RequestMapping("/hello")
       public String sayHello() {
           return "hello";
       }
   }
   ```

2. **`@RequestMapping`:**
   - 用于映射HTTP请求的URL到具体的控制器方法。
   
   ```java
   @Controller
   @RequestMapping("/example")
   public class ExampleController {

       @RequestMapping("/path")
       public String handleRequest() {
           return "view";
       }
   }
   ```

3. **`@RequestParam`:**
   - 用于从请求中获取参数值。
   
   ```java
   @Controller
   public class MyController {

       @RequestMapping("/greet")
       public String greet(@RequestParam("name") String name) {
           return "Hello, " + name + "!";
       }
   }
   ```

4. **`@ResponseBody`:**
   - 用于指示方法返回的对象应该被写入响应体。
   
   ```java
   @RestController
   public class MyRestController {

       @RequestMapping("/data")
       @ResponseBody
       public Map<String, String> getData() {
           Map<String, String> data = new HashMap<>();
           data.put("key", "value");
           return data;
       }
   }
   

在Spring MVC中,用于映射请求方法的注解有几种,具体选择取决于你希望处理的HTTP请求类型以及处理方式。以下是一些常见的请求方法注解:

1. **`@RequestMapping`:**
   - `@RequestMapping`是最通用的映射注解,可以用于映射多个HTTP请求方法。可以用在类级别和方法级别。地位等同于@WebServlet
   - 可以通过`method`属性指定请求方法。

   ```java
   @Controller
   @RequestMapping("/example")
   public class ExampleController {

       @RequestMapping(value = "/path", method = RequestMethod.GET)
       public String handleGetRequest() {
           return "view";
       }

       @RequestMapping(value = "/path", method = RequestMethod.POST)
       public String handlePostRequest() {
           // Handle POST request
           return "view";
       }
   }
   ```

2. **`@GetMapping`、`@PostMapping`、`@PutMapping`、`@DeleteMapping`等:**
   - 这些是`@RequestMapping`的缩写形式,分别用于处理GET、POST、PUT、DELETE等HTTP请求方法。
   
   ```java
   @Controller
   @RequestMapping("/example")
   public class ExampleController {

       @GetMapping("/path")
       public String handleGetRequest() {
           return "view";
       }

       @PostMapping("/path")
       public String handlePostRequest() {
           // Handle POST request
           return "view";
       }
   }
   ```

3. **`@RequestMapping`的缩写注解:**
   - `@GetMapping`、`@PostMapping`等都是`@RequestMapping`的缩写形式,用于简化代码。
   
   ```java
   @Controller
   @RequestMapping("/example")
   public class ExampleController {

       @GetMapping("/path")
       public String handleGetRequest() {
           return "view";
       }

       @PostMapping("/path")
       public String handlePostRequest() {
           // Handle POST request
           return "view";
       }
   }
   ```

4. **`@RequestMapping`中的`consumes`和`produces`属性:**
   - 通过`consumes`属性指定接受的请求的`Content-Type`,通过`produces`属性指定产生的响应的`Content-Type`。
   
   ```java
   @Controller
   @RequestMapping(value = "/example", consumes = "application/json", produces = "application/json")
   public class ExampleController {

       @RequestMapping(value = "/path", method = RequestMethod.POST)
       public String handleJsonPostRequest(@RequestBody MyObject myObject) {
           // Handle JSON POST request
           return "view";
       }
   }

在Spring MVC中,有一些用于注解响应类的注解,用于配置响应的一些属性。以下是一些常用的响应类注解:

1. **`@ResponseBody`:**
   - 用于指示方法返回的对象应该被写入响应体。
   - 通常用于RESTful风格的控制器方法,以返回JSON、XML等格式的数据。

   ```java
   @RequestMapping("/example")
   @ResponseBody
   public String example() {
       return "This is a response body.";
   }
   ```

2. **`@RestController`:**
   - 与`@Controller`相似,但它的每个方法都默认使用`@ResponseBody`注解。
   - 适用于构建RESTful API。

   ```java
   @RestController
   @RequestMapping("/api")
   public class ExampleRestController {

       @RequestMapping("/data")
       public Map<String, String> getData() {
           Map<String, String> data = new HashMap<>();
           data.put("key", "value");
           return data;
       }
   }
   ```

3. **`@ResponseStatus`:**
   - 用于指定控制器方法的响应状态码和原因短语。

   ```java
   @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Resource not found")
   public class ResourceNotFoundException extends RuntimeException {
       // ...
   }
   ```

4. **`@ModelAttribute`:**
   - 用于将方法返回的对象添加到模型中,使其可以在视图中使用。
   - 不直接影响响应,但与响应有关,因为它可以影响到视图的渲染。

   ```java
   @RequestMapping("/example")
   public String example(Model model) {
       MyObject myObject = new MyObject();
       model.addAttribute("myObject", myObject);
       return "exampleView";
   }
   ```

这些注解可以根据你的应用程序的需要进行组合使用,以实现所需的功能。

   ```

这些注解允许你根据不同的HTTP请求方法和其他条件来映射不同的处理方法。你可以根据具体的需求选择适当的注解。文章来源地址https://www.toymoban.com/news/detail-817990.html

到了这里,关于Spring 注解 和SpringMVC注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java框架学习(二)SSM体系:Spring、SpringMVC、MybatisPlus

    在原始的分层架构实现中,负责响应请求的Controller层依赖于业务逻辑处理的Service层,而业务逻辑处理的service层又依赖与数据访问Dao层。上下层间相互依赖耦合,耦合的缺陷在于牵一发而动全身,不利于后期维护拓展。 为了分层解耦,Spring采用IoC控制反转和DI依赖注入,来解

    2024年02月11日
    浏览(49)
  • Java后端07(Spring未完成)

    ​涉及的设计模式:单例模式,简单工厂模式,代理模式,观察者模式,反射,注解。。。。。 ​在传统模式下,对象的创建和赋值,都是由开发者自己手动完成,事实情况下,开发者只关心如何获取赋值好的对象,但是并不希望自己手动进行创建对象和赋值的事情(sprin

    2024年02月14日
    浏览(47)
  • Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发

      掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 问题导入 思考:如何使用注解方式将Bean对象注入到类中 1.1 使用@Autowired注解开启自动装配模式(按类型) 说明:不管是使用配置文件还是配置类,都必须进行对应的Spring注解包扫描才可以使用。@Autowired默

    2024年02月14日
    浏览(57)
  • Java开发之框架(spring、springmvc、springboot、mybatis)【面试篇 完结版】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文主要记录spring的单例bean、切面编程AOP、spring事务、循环依赖、常见注解等 提示:以下是本篇文章正文内容,下面案例可供参考 ① 问题引入 Spring框架中的bean是单例的 singleton :bean在每个Spring IOC容

    2024年02月07日
    浏览(50)
  • java spring boot 注解、接口和问题解决方法(持续更新)

    @RestController         是SpringMVC框架中的一个注解,它结合了@Controller和@ResponseBody两个注解的功能,用于标记一个类或者方法,表示该类或方法用于处理HTTP请求,并将响应的结果直接返回给客户端,而不需要进行视图渲染 @Controller         是Spring Framework中的注解,用于

    2024年02月06日
    浏览(51)
  • JAVA后端开发面试基础知识(八)——Spring

    Spring是一个轻量级Java开发框架 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说 Spring 支持 IoC(Inverse of Control:控制反转) 和 AOP(Aspect-Oriented Programming:面向切面编程)、可以很方便地对数据库进行访问、

    2024年03月10日
    浏览(71)
  • 微信小程序的授权登录-Java 后端 (Spring boot)

    微信开发文档链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 一个可以测试的微信小程序 此微信小程序的APPID和APPscret(至开发者后台获取) 从时序图我们可以了解到流程大致分为两步: 小程序端获取code后传给Java后台 Java后台获取code后向微信后台接口

    2024年02月09日
    浏览(51)
  • @JsonProperty 前端传参数名和后端参数名不一样 入参 出参 映射 注解 springboot springmvc

    使用 @JsonProperty 前端传productName,后端使用  @JsonProperty 转换一下。 返回也是一样。如果出参也用这个对象,出参用的是  @JsonProperty 里的字段名。前端拿到的是productName。 @JsonProperty  位于  com.fasterxml.jackson.annotation   依赖如下  常用到jackson的注解: @JsonProperty、@JsonIgnore、

    2024年04月23日
    浏览(31)
  • (第十一天)初识SpringMVC SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    今天我们要来学习一下SSM框架的最后一个框架SpringMVC 一、初认SpringMVC 基本概念: ​ Spring MVC(Model-View-Controller)是一个用于构建Java Web应用程序的开源框架,它提供了一种基于MVC架构的方式来开发Web应用 。 ​ SpringMVC是Spring Framework的一部分,它是一种基于模型-视图-控制器(

    2024年02月07日
    浏览(67)
  • “从零开始学习Spring Boot:快速搭建Java后端开发环境“

    标题:从零开始学习Spring Boot:快速搭建Java后端开发环境 摘要:本文将介绍如何从零开始学习Spring Boot,并详细讲解如何快速搭建Java后端开发环境。通过本文的指导,您将能够快速搭建一个基于Spring Boot的Java后端开发环境并开始编写代码。 正文: 一、准备工作 在开始之前,

    2024年02月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包