Spring 系列的注解使用

目录

引言

       1. @Component 和衍生注解

       2. @Autowired

       3. @Qualifier

       4. @Value

       5. @Configuration 和 @Bean

       6. @Profile

       7. @Transactional

       8. @RestController 和 @RequestMapping

       9. @PathVariable, @RequestParam, @RequestBody

       10. @ExceptionHandler

 一、Spring IOC、DI 注解使用

1、Spring IOC、DI概念

2、使用方法

二、Spring MVC注解使用

三、SpringBootApplication


引言

在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 项目都必须满足,如下图所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值