精心整理了最新的面试资料和简历模板,有需要的可以自行获取
以下是Spring Boot相关注解的总结,按功能分类整理:
1. 核心注解
- @SpringBootApplication
用于主启动类,组合了三个注解:@Configuration
:标记为配置类。@EnableAutoConfiguration
:启用自动配置。@ComponentScan
:扫描当前包及子包的组件。
2. 依赖注入
- @Autowired
自动注入Bean(默认按类型)。 - @Qualifier(“beanName”)
指定Bean名称解决冲突。 - @Resource
JSR-250标准,按名称注入(如@Resource(name="beanName")
)。 - **@Value(“ p r o p e r t y " ) ∗ ∗ 注入配置文件中的值(如 ‘ @ V a l u e ( " {property}")** 注入配置文件中的值(如`@Value(" property")∗∗注入配置文件中的值(如‘@Value("{app.name}”)`)。
3. 配置相关
- @Configuration
声明配置类,内部用@Bean
定义Bean。 - @Bean
在配置类中定义Bean。 - @ComponentScan(“com.example”)
指定组件扫描路径。 - @Import(OtherConfig.class)
导入其他配置类。 - @PropertySource(“classpath:app.properties”)
加载指定属性文件。 - @ConfigurationProperties(prefix=“app”)
绑定配置文件属性到Bean。
4. Web/MVC相关
- @Controller
标记为控制器,返回视图。 - @RestController
@Controller
+@ResponseBody
,直接返回数据(如JSON)。 - @RequestMapping
定义请求映射(支持path
、method
等属性)。 - @GetMapping/@PostMapping/@PutMapping/@DeleteMapping
简化版请求映射(对应HTTP方法)。 - @PathVariable
获取URL路径参数(如/user/{id}
)。 - @RequestParam
获取请求参数(如?name=xxx
)。 - @RequestBody
接收请求体中的JSON数据并转换为对象。 - @RequestHeader
获取请求头信息。 - @CookieValue
获取Cookie值。 - @ExceptionHandler
处理控制器内的异常。 - @ControllerAdvice
全局异常处理类。
5. 数据相关
- JPA/Hibernate
@Entity
:标记实体类。@Table(name="users")
:指定数据库表名。@Id
:主键字段。@GeneratedValue
:主键生成策略。@Repository
:标记数据访问层(自动处理异常)。
- Spring Data JPA
@Query
:自定义查询语句。
- MyBatis
@Mapper
:标记Mapper接口。@MapperScan("com.example.mapper")
:扫描Mapper接口。
6. 条件注解(自动配置)
- @ConditionalOnClass(DataSource.class)
当类路径存在指定类时生效。 - @ConditionalOnProperty(name=“feature.enabled”)
当配置属性为true时生效。 - @ConditionalOnMissingBean
当容器中无指定Bean时生效。
7. 测试相关
- @SpringBootTest
集成测试入口。 - @DataJpaTest
仅测试JPA组件。 - @MockBean
模拟Bean(用于测试环境)。
8. AOP相关
- @Aspect
声明切面类。 - @Pointcut("execution( com.example.service..(…))")*
定义切点表达式。 - @Before/@After/@Around
定义通知类型(前置/后置/环绕)。
9. 定时任务与异步
- @EnableScheduling
启用定时任务(主类)。 - @Scheduled(fixedRate=5000)
定义定时任务方法。 - @EnableAsync
启用异步执行。 - @Async
标记异步方法。
10. 缓存
- @EnableCaching
启用缓存(主类)。 - @Cacheable(“cacheName”)
缓存方法结果。 - @CacheEvict(“cacheName”)
清除缓存。
11. 其他
- @Profile(“dev”)
指定Bean在特定环境下生效。 - @Lazy
延迟初始化Bean。 - @Primary
优先注入的Bean。
示例代码片段
// 主启动类
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
// REST控制器
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
return userService.findById(id);
}
}
// 配置属性绑定
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
// getter/setter
}
以上注解覆盖了Spring Boot开发中的核心功能,包括配置、依赖注入、Web开发、数据访问、测试等场景。根据具体需求选择合适的注解即可快速构建应用。