【面试】Spring Boot构建项目时有哪些常用的注解?

前言

Spring Boot是一款强大的开发框架,其核心思想是通过注解来简化配置,提高开发效率。

在Spring Boot项目中,我们经常会使用一些核心注解来定义组件、配置应用、处理请求等。

@SpringBootApplication

含义及作用

这是一个组合注解,用于标识主程序类。它包括@Configuration@EnableAutoConfiguration@ComponentScan

如何使用

@SpringBootApplication这个注解通常用于启动整个Spring Boot应用,自动配置并扫描所有组件。

java 复制代码
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

@Controller

含义及作用

@Controller标识一个类为Spring MVC控制器,处理HTTP请求。

如何使用

在这个类中,@Controller注解可以定义处理HTTP请求的方法,返回视图或数据。

java 复制代码
@Controller
public class MyController {
    // Controller methods
}

@RestController

含义及作用

组合注解,结合了@Controller@ResponseBody,用于构建RESTful风格的控制器。

如何使用

@RestController注解适用于返回JSON或XML格式的数据,常用于构建RESTful API。

java 复制代码
@RestController
public class MyRestController {
    // RESTful Controller methods
}

@RequestMapping

含义及作用

@RequestMapping映射HTTP请求到相应的控制器方法。

如何使用

在下例中,/hello路径的请求将由hello()方法处理。

java 复制代码
@Controller
public class MyController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

@Autowired

含义及作用

@Autowired注解表示自动装配Spring容器中的bean。

如何使用

通过构造函数、Setter方法或字段上使用@Autowired,将依赖注入到组件中。

java 复制代码
@Controller
public class MyController {
    private final MyService myService;

    @Autowired
    public MyController(MyService myService) {
        this.myService = myService;
    }
}

@Service

含义及作用

@Service注解标识一个类为服务层组件。

如何使用

在这个类中,通常包含业务逻辑,供Controller调用。

java 复制代码
@Service
public class MyService {
    // Service methods
}

@Repository

含义及作用

@Repository注解标识一个类为数据访问层组件,通常与Spring的数据访问框架一起使用。

如何使用

@Repository注解用于封装数据库操作,提供数据访问的方法。

java 复制代码
@Repository
public class MyRepository {
    // Data access methods
}

@Component

含义及作用

@Component注解泛指Spring容器管理的所有组件。

如何使用

可以在任何需要被Spring容器管理的类上使用,通常用于通用性组件的定义。

java 复制代码
@Component
public class MyComponent {
    // Component logic
}

@Configuration

含义及作用

@Configuration注解标识一个类为配置类,通常与@Bean一起使用,定义一些Bean的创建。

如何使用

在这个类中,@Configuration注解可以定义一些特定的配置,例如数据源配置、Bean的初始化等。

java 复制代码
@Configuration
public class MyConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

@Value

含义及作用

@Value注解将配置文件中的值注入到属性中。

如何使用

在这个例子中,${my.property}的值将会从配置文件中读取并注入到myProperty属性中。

java 复制代码
@Service
public class MyService {
    @Value("${my.property}")
    private String myProperty;
}

总结

以上这些注解都是Spring Boot开发项目时的一些常用注解,通过合理使用这些注解,我们可以更加便捷地构建和管理Spring Boot项目。

通过每个注解下给出的示例代码我们可以从中窥探到一些具体用法,具体如何灵活使用还是得在项目中实践,俗话说:实践出真知,少年行动起来吧,路是自己走出来的,加油。

相关推荐
踏浪无痕几秒前
JobFlow:固定分片如何解决分布式扫描的边界抖动
后端·面试·架构
q_191328469511 分钟前
基于SpringBoot+Vue.js的高校竞赛活动信息平台
vue.js·spring boot·后端·mysql·程序员·计算机毕业设计
踏浪无痕38 分钟前
JobFlow调度的难题:超时、补偿与漏调
后端·面试·架构
Postkarte不想说话40 分钟前
ElasticSearch操作系统环境设置
后端
i听风逝夜41 分钟前
Gradle秒级打包部署SpringBoot项目,行云流水
后端
why技术1 小时前
如果让我站在科技从业者的角度去回看 2025 年,让我选一个词出来形容它,我会选择“vibe coding”这个词。
前端·后端·程序员
喵个咪1 小时前
Go单协程事件调度器:游戏后端的无锁有序与响应时间掌控
后端·游戏开发
Kiyra1 小时前
八股篇(1):LocalThread、CAS和AQS
java·开发语言·spring boot·后端·中间件·性能优化·rocketmq
木风小助理2 小时前
在 Spring Boot 中实现 JSON 字段的蛇形命
spring boot·后端·json
William_cl2 小时前
【保姆级】ASP.NET Razor 视图引擎:@if/@foreach 核心语法拆解(附避坑指南 + 生活类比)
后端·asp.net·生活