当前位置: 首页> 汽车> 时评 > 下一页360_建筑方案设计收费标准_如何制作视频网站_郑州seo建站

下一页360_建筑方案设计收费标准_如何制作视频网站_郑州seo建站

时间:2025/7/28 1:05:39来源:https://blog.csdn.net/mzz715/article/details/143734063 浏览次数: 0次
下一页360_建筑方案设计收费标准_如何制作视频网站_郑州seo建站

目录

1.@Controller

2.@Requestbody

3.@RequestMapping

4.@Component

5.@Autowired & @Resource


1.@Controller

在 JavaWeb 开发中,@Controller是 Spring 框架中的一个注解,主要用于定义控制器类(Controller),是 Spring MVC 模式的核心组件之一。它表示该类是一个 Spring MVC 控制器,用来处理 HTTP 请求并返回相应的视图或数据。

@Controller 的典型用法:

  • @Controller:将 UserController 类标记为控制器,Spring 会自动扫描该类并将其作为处理 HTTP 请求的组件
  • @RequestMapping("/users"):设置基础路径 /users,该路径会应用到类中的所有方法
  • @GetMapping("/list"):表示处理 GET 请求,路径为 /users/list,并返回一个名为 userList 的视图
  • @GetMapping("/{id}"):通过路径变量({id})接收动态路径部分并返回视图
  • Model:用于在控制器方法中传递数据到视图。model.addAttribute("users", users)users 数据传递到视图中 
@Controller
@RequestMapping("/users")
public class UserController {// 假设我们有一个 User 类public static class User {private String name;private int age;// getters and setters}// 显示用户列表页面@GetMapping("/list")public String showUsers(Model model) {List<User> users = new ArrayList<>();users.add(new User("Alice", 30));users.add(new User("Bob", 25));model.addAttribute("users", users); // 将数据传递给视图return "userList"; // 返回视图名称}// 显示用户详情页面@GetMapping("/{id}")public String showUser(@PathVariable("id") int id, Model model) {User user = new User("Charlie", 35); // 假设从数据库获取用户model.addAttribute("user", user);return "userDetail"; // 返回视图名称}
}

2.@Requestbody

在 Java Web 开发中,@RequestBody 是 Spring 框架中的一个注解,主要用于将 HTTP 请求的请求体(request body)映射为方法的参数。

具体来说就是,@RequestBody 注解会将 HTTP 请求的正文部分(通常是 JSON 或 XML 格式的数据)自动转换为 Java 对象。例如,当客户端发送一个包含 JSON 数据的 POST 请求时,Spring 会将这些 JSON 数据反序列化成 Java 对象,如下所示,接收一个 JSON 格式的请求体,并将其转换为 Java 对象:

@RestController
public class UserController {// 假设我们有一个 User 类public static class User {private String name;private int age;// getters and setters}@PostMapping("/users")public String createUser(@RequestBody User user) {// 自动将请求体中的 JSON 数据转换成 User 对象return "User created: " + user.getName() + ", age: " + user.getAge();}
}

解析:

  • @RequestBody:它会将 HTTP 请求的 Body 部分转换为方法参数。在这个例子中,它会将客户端发送的 JSON 数据映射到 User 类对象的字段上
  • @PostMapping("/users"):这个注解表示一个 POST 请求,客户端通过请求体发送一个用户信息(如 JSON 格式),Spring 会自动解析这个请求体,并使用 @RequestBody 注解将其转换成 User 对象

如果客户端发送以下JSON数据:

{"name": "John Doe","age": 30
}

那么在 createUser 方法中,user 对象会被自动填充为:

user.name = "John Doe";
user.age = 30;

3.@RequestMapping

@RequestMapping 是 Spring 框架中用于处理 HTTP 请求的核心注解之一。它可以用于类级别和方法级别,标识一个方法或类与特定的 HTTP 请求(如 GET、POST、PUT、DELETE)映射关系,从而让 Spring 框架能够将 HTTP 请求路由到对应的处理方法。

Spring 为 @RequestMapping提供了更具体的注解,用于简化 @RequestMapping 的使用:

  •  @GetMapping:专门用于处理 GET 请求
  • @PostMapping:专门用于处理 POST 请求
  • @PutMapping:专门用于处理 PUT 请求
  • @DeleteMapping:专门用于处理 DELETE 请求
  • @PatchMapping:专门用于处理 PATCH 请求 

 这些注解是 @RequestMapping 的快捷方式,适用于常见的 HTTP 请求方法,减少了代码的冗余

@RequestMapping 的使用示例:类级别和方法级别的结合使用

  •  @RequestMapping("/users"):在类级别指定基本的 URL 路径 /users,该路径会应用到类中的所有方法 
  • @GetMapping@PostMapping@RequestMapping 的快捷方式,分别处理 GETPOST 请求 
@RestController
@RequestMapping("/users")
public class UserController {// 处理 GET 请求,路径为 "/users"@GetMappingpublic List<User> getAllUsers() {List<User> users = new ArrayList<>();users.add(new User("Alice", 30));users.add(new User("Bob", 25));return users;  // 返回用户列表,默认会转化为 JSON}// 处理 POST 请求,路径为 "/users"@PostMappingpublic User createUser(@RequestBody User user) {return user;  // 接收 JSON 数据并返回创建的用户对象}
}

4.@Component

在 Java Web 开发中,@Component 注解是 Spring 框架提供的一个非常重要的注解,用来声明一个类是 Spring 容器中的一个组件,使得该类的实例可以被自动注册到 Spring 容器中进行管理。这样,你就可以利用 Spring 提供的依赖注入(DI)功能,将该组件注入到其他类中,以下是@Component 注解使用步骤:

1.@Component 声明

@Component 通常用于类的声明上,表示该类是一个 Spring 管理的 Bean:

import org.springframework.stereotype.Component;@Component
public class MyService {public void doSomething() {System.out.println("Doing something...");}
}

2.Spring scan扫描

Spring 默认会扫描带有 @Component 注解的类(以及其他派生注解,如 @Service@Repository@Controller 等),并将其注册为 Spring 管理的 Bean。为了让 Spring 知道去扫描这些组件,通常会在配置类中使用 @ComponentScan 注解指定包扫描路径

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan(basePackages = "com.example") // 指定要扫描的包
public class AppConfig {// Spring 会自动扫描并注册包中的 @Component 注解的类
}

3.自动装配

使用 @Autowired 注解可以将 @Component 注解的类实例注入到其他类中:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class MyController {@Autowiredprivate MyService myService;public void startProcess() {myService.doSomething();}
}

@Service@Repository@Controller 都是 @Component 的派生注解,它们与 @Component 有相同的功能,但用于不同的层次:

  • @Service:通常用于业务层服务类
  • @Repository:通常用于数据访问层类
  • @Controller:通常用于控制器类(用于 MVC 控制器)
  • @Component:用于普通的 Bean 类

5.@Autowired & @Resource

@Autowired和@Resource都是用于依赖注入(DI)的注解,但是@Autowired注解是Spring框架提供的注解,它根据类型进行自动装配;@Resource注解是JavaEE提供的注解,它提供了更灵活的方式进行依赖对象的查找,可以按照名称或类型进行注入

@Component
public class UserService {@Autowiredprivate User user;
}@Component
public class UserService {@Resourceprivate User user;
}

在上述示例中,使用@Autowired注解将User对象注入到UserService类中,Spring容器会根据UserRepository类型进行自动装配,并将匹配的Bean注入到user字段中;@Resource注解默认按照字段名进行依赖对象的查找和匹配,也可以通过name属性指定依赖对象的名称,它们的区别是: 

  • @Autowired注解是Spring提供的,用于自动装配Bean依赖。它可以通过类型匹配来自动注入依赖对象,但如果存在多个符合条件的候选对象时,默认使用byType的方式进行自动装配
  • @Resource注解是JavaEE提供的,也可以用于自动装配依赖对象。它可以通过名称匹配来自动注入依赖对象,默认使用byName的方式进行自动装配

其他JavaWeb开发常见注解:17.1 JavaWeb-常用注解_java web 判断请求参数注解-CSDN博客

关键字:下一页360_建筑方案设计收费标准_如何制作视频网站_郑州seo建站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: