目录
8. @RestController 和 @RequestMapping
9. @PathVariable, @RequestParam, @RequestBody
引言
在Spring框架中,注解(Annotation)是一种元数据形式,它提供了一种安全地将数据与程序代码关联的方法。注解不会直接影响程序的直接行为,但可以被编译器或运行时环境读取,从而影响程序的行为。Spring框架广泛使用了注解来简化配置和开发过程。以下是一些常用的Spring注解及其用途:
1. @Component
和衍生注解
@Component
:用于标记一个类为Spring中的Bean,这样Spring容器就可以管理这个类的生命周期。@Service
:标记服务层组件。@Repository
:标记持久层组件,通常用于DAO(Data Access Object)层。@Controller
:标记控制层组件,常用于Web层。
2. @Autowired
- 用于自动装配依赖。Spring会根据类型自动匹配并注入相应的bean。如果找不到匹配的bean或者有多个候选者,Spring将会抛出异常。也可以通过
@Qualifier
指定具体的bean名称。
3. @Qualifier
- 当存在多个相同类型的bean时,可以通过
@Qualifier
指定注入哪个bean。
4. @Value
- 用于注入简单的值,如字符串、数字等。支持占位符
${}
来从外部配置文件中加载值。
5. @Configuration
和 @Bean
@Configuration
:表示该类是一个配置类,类似于XML配置文件的功能。@Bean
:用于方法上,表明该方法返回的对象应该被注册为一个Spring Bean。
6. @Profile
- 用于指定bean在特定的环境下才被创建。例如,测试环境、生产环境等。
7. @Transactional
- 用于声明事务管理,可以放在类级别或方法级别,以确保方法执行期间的数据库操作是原子性的。
8. @RestController
和 @RequestMapping
@RestController
:组合了@Controller
和@ResponseBody
,用于构建RESTful Web服务。@RequestMapping
:用于映射HTTP请求到处理方法上,可以标注在类或方法上。
9. @PathVariable
, @RequestParam
, @RequestBody
@PathVariable
:用于从URL路径中提取变量。@RequestParam
:用于获取请求参数。@RequestBody
:用于接收前端发送的JSON格式的数据,并将其转换为Java对象。
10. @ExceptionHandler
- 用于处理控制器中抛出的异常,可以指定处理特定类型的异常。
代码示例
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ExampleController {
private final ExampleService exampleService;
@Autowired
public ExampleController(ExampleService exampleService) {
this.exampleService = exampleService;
}
@GetMapping("/example")
public String getExample(@RequestParam String param) {
return exampleService.process(param);
}
}
@Service
class ExampleService {
public String process(String input) {
// 处理逻辑
return "Processed: " + input;
}
}
一、Spring IOC、DI 注解使用
1、Spring IOC、DI概念
2、使用方法:
(1).@Component+@Autowired
(2).@{Configuration+@Bean}+@Resource
1、Spring IOC、DI概念
IOC:Inverse Of Control —>
原来:要完成一个逻辑,A 要调用[依赖]B ,创建对象B 的动作会放在A 里面
现在:创建B 转交给框架做。创建B 的控制权被外部控制了,而不是A 自己,叫做控制反转
ps:(是一个容器,通俗的来讲就是创建)
DI:Dependency Inject <—
框架创建好的对象B 需要给回A 进行使用,就叫做依赖注入
ps:(通俗的来讲就是调用,把IOC创建的容器拿来用)
2、使用方法
@Component+@Autowired、{@Configuration+@Bean}+@Resource
【IOC】注册Bean到Spring容器:@Component
【DI】在SysLoginService 类中注入Bean:@Autowired
使用成员变量
二、Spring MVC注解使用
Spring MVC 常用注解
@Controller/@RequestMapping/@RequestBody/@ResponseBody
@RestController/@GetMapping/@PostMapping/@PutMapping/@DeleteMapping
@Service
注册Controller[也是一种Bean]
@Controller [每次前端请求返回的一个页面]
@RequestBody[请求体为json]
@ResponseBody[返回值为json]
@RestController [每次前端请求返回的一个json,等效于@Controller+@ResponseBody]
注册HTTP Method 处理函数
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
注册Service[也是一种Bean]
@Service
注册:
注册处理函数:
使用Controller:
Spring MVC 框架会在HTTP 请求到来时,寻找匹配
URI 映射处理函数
三、SpringBootApplication
1.@SpringBootApplication
2.启动Spring 运行环境:SpringApplication.run(RuoYiApplication.class, args);
上面两个条件,在所有SpringBoot 项目都必须满足,如下图所示