魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Library - Maven - SpringBoot 3 - 注解

文章摘要: 摘要内容。

默认注解

  • 若没有指定@ComponentScan扫描包路径,则自动扫描当前配置类所在的包。

启动/引导类

@SpringBootApplication

说明

  • 标记为SpringBoot引导/启动类。

参数

  • 无

案例

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
    }
    
}

配置类

@SpringBootConfiguration

说明

  • spring boot的配置类。

参数

  • 无

案例

import org.springframework.boot.SpringBootConfiguration;

@SpringBootConfiguration
public @interface SpringBootApplication {

}

@EnableAutoConfiguration

说明

  • 开启自动配置功能。

参数

  • 无

案例

@EnableAutoConfiguration
public @interface SpringBootApplication {

}

@ComponentScan

说明

  • 配置扫描包路径

参数

  • ==待完善==

案例

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;

@ComponentScan(
	    excludeFilters = {@Filter(
	    type = FilterType.CUSTOM,
	    classes = {TypeExcludeFilter.class}
	), @Filter(
	    type = FilterType.CUSTOM,
	    classes = {AutoConfigurationExcludeFilter.class}
	)}
)
public @interface SpringBootApplication {

}

注入(绑定)配置文件属性

@Value

说明

  • 通过@Value + SpEL表达式 直接绑定SpringBoot中的配置
  • 在Java代码中使用@Value("${agentInfo.realName}")实现读取配置文件中的数据。
  • 绑定(读取)单个配置文件上的属性。

案例

# yml配置文件
agent_data:
  account: "CHN2024091700009999"
  nick_name: "测试姬"
  real_name: "云脉"
  nationality: "CHN"
  gender: 0
  age: 23
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AgentInfo {
	@Value("${agent_data.real_name}")  
	private String realName; // 真实姓名
	
	@Value("${agent_data.age}")  
	private String age; // 年龄
}

@ConfigurationProperties

说明

  • 绑定配置文件上的数据与类属性。
  • 读取配置文件数据。
  • 绑定(读取)多个配置文件上的属性。

案例

# yml配置文件
agent_data:
  account: "CHN2024091700009999"
  nick_name: "测试姬"
  real_name: "云脉"
  nationality: "CHN"
  gender: 0
  age: 23
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "agent_data") // 前缀,下的所有属性都将绑定到
@ConstructorBinding
public class AppProperties {

    private String realName;
    private int age;

    // 获取真实姓名
    public String getRealName() {
        return realName;
    }

	// 获取年龄
    public int getAge() {
        return age;
    }
}

@PropertySource

说明

  • 指定配置文件位置。
  • 指定 Spring 的 Environment 中要包含的属性源的位置。

属性

  • value 或 location:用于指定属性文件的位置。可以使用 Spring 的资源路径,例如 “classpath:” 或 “file:”。
  • ignoreResourceNotFound:如果设置为 true,则在找不到指定的资源文件时不会抛出异常。
  • encoding:指定属性文件的编码格式。
  • factory:指定用于解析属性源的 PropertySourceFactory。

案例

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource(value = {"classpath:custom.properties", "file:/path/to/external.properties"}, ignoreResourceNotFound = true)
public class AppConfig {
    // ... 配置类的内容
}

// `AppConfig` 配置类通过 `@PropertySource` 注解指定了两个属性文件的位置:一个是位于类路径下的 `custom.properties`,另一个是位于文件系统中的 `/path/to/external.properties`。

数据校验

@Validated

说明

  • JSR303数据校验

属性

  • 无

案例

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

@Component
@ConfigurationProperties(prefix = "agent_data") // 前缀,下的所有属性都将绑定到
@ConstructorBinding
@Validated  // 数据校验
public class AppProperties {

    private String realName;
    private int age;

    // 获取真实姓名
    public String getRealName() {
        return realName;
    }

	// 获取年龄
    public int getAge() {
        return age;
    }
}

标记Bean对象

@RestController

说明

  • 标记为controller层的bean对象

案例

import org.springframework.web.bind.annotationl.RestController;

@RestController
public class UserController {
}

@SpringBootTest

说明

  • 在类上定义,标记为测试类。

案例

// 指定spring boot的启动/引导类
@SpringBootTest(classes = app.class)
public class Test {
}

自动注入

@Autowired

说明

  • 自动指定要注入的Bean对象。

参数

  • 暂无

案例

import org.springframework.beans.factory.annotation.Autowired;

public class UserController {

	@Autowired
	private UserService userService;  // 服务层对象

}

@Qualifier

说明

  • 手动指定要注入的Bean对象。

参数

  • value:设置在容器中的Bean对象名

案例

import org.springframework.beans.factory.annotation.Qualifier;

public class UserController {

	@Qualifier("userServiceImpl")  
	private UserService service;  // 服务层对象

}

请求URL路径映射

@RequestMapping

说明

  • 请求路径映射

案例

public class UserController {

 // 接收,请求方式限制,可以不进行请求方法限制
 @RequestMapping(value = "/users", method = RequestMethod.POST)
 // 响应
 @ResponseBody
 public String save() {
  return "返回响应";
 }
 
}

REST风格的资源请求路径

  • @GetMapping:获取,仅支持get请求方式。
  • @PostMapping:新增,仅支持post请求方式。
  • @PutMapping:修改,仅支持put请求方式。
  • @DeleteMapping:删除,仅支持delete请求方式。
  • @PathVariable:形参注解,绑定路径参数与处理器方式形参间的关系,要求路径参数名与形参名一致。
@GetMapping("user/{id}")
public void getById(@PathVariable Integer id) {
}

接收请求数据

@RequestBody

说明

  • 用于接收json对象数据。普通风格。

@RequestParm

说明

  • 用于接收URL地址或表单进行传递参数。若传递的不是json对象数据,则使用该方法。普通风格。

@PathVariable

说明

  • 用于接收路径参数,使用{参数名称}的格式描述路径参数。参数数量较少时使用REST风格,通常传递id值。

场景启动器中的注解

spring-boot-test

  • 单元测试
  • 实现对项目中的接口进行测试。
  • spring-boot-test场景启动器的注解总结:Library-Maven-SpringBoot3-场景启动器-test-注解
更新时间: 2025/11/16 17:17