SpringBoot常用注解总结

一、常用启动相关
1、注解总结@SpringBootApplication
SpringBootApplication注解: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM,常用 classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {在SpirngBoot启动类里面,都加入了此启动注解,注解总结此注解是常用个组合注解,三个比较重要的注解总结:
@SpringBootConfiguration 继承至@Configuration,其实两种功能一致,常用都是注解总结标注该类为配置类
@EnableAutoConfiguration 这个注解是SpirngBoot自动配置的核心所在,通过此注解,常用能所有符合自动配置条件的注解总结bean的定义加载到spring容器中。
@ComponentScan 该注解会扫描当前包及子包下面被纳入sping容器管理的常用类。
注意事项:一般我们在实际项目中会根据自己的注解总结需要排除一些无需自动配置的类,例如我们会配置自己的常用数据库,所以就不需要springboot自动注入数据源,注解总结这可以利用exclude进行排除
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
当需扫描第三方jar包时,常用我们可以通过在配置类中使用@Configuration与@ComponentScan来引入第三方jar包下的亿华云计算类
@Configuration@ComponentScan(basePackages = {"com.test.service"}) //引入第三方jar包下的类
2、@Import
@Import注解可用来导入一个或者多个 Spring 配置文件,特别是第三方jar包下的一些配置类,需要通过Import注解进行加载,代码如下所示@Import({KafkaConfig.class, JedisConfig.class}) //引入第三方jar包里配置类
二、配置相关以一般的的配置类中用到的注解为例
1、@Configuration
@Configuration专门用来标注配置类,它一般会配合
2、@Bean使用@Bean注解拿到配置返回相关实例,并放入sping容器中统一管理
3、@PropertySource目的是加载指定路径下的属性文件
4、@Value配合@PropertySource注解使用,指定该字段对应的配置文件中的内容
5、@Order利用@Order控制配置类的加载顺序
结合以上注解对kafka进行配置示例代码如下 @Configuration @PropertySource("classpath:spring-kafka.properties") @Order(2) public class KafkaConfig { @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServers; @Bean public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<Object, Object>> kafkaListenerContainerFactory() { ConcurrentKafkaListenerContainerFactory<Object, Object> factory = new ConcurrentKafkaListenerContainerFactory<Object, Object>(); factory.setConsumerFactory(consumerFactory()); factory.setConcurrency(1); // factory .getContainerProperties().setPollTimeout(1000); return factory; } }三、服务器租用构造相关1、@Service
用于标注服务层,主要用来进行业务的逻辑处理
2、@Repository用于标注持久层,主要用来进行数据库相关操作
3、@Component一个通用的注解,可以注解各种组件,就是说当我们需要注入sping容器中bean类没有明确分类时(不属于@service、@Repository等的时候),我们就可以使用@Component来标注这个类。
4、@Scopespring容器管理bean默认是单例模式,如果你需要使用多例模式可以通过@Scope("prototype")注解来实现。
5、@Autowired这个就很简单了,用于Spring容器中Bean类实例的注入
6、@PostConstruct在Bean初始化之后(构造方法和@Autowired之后)执行指定操作。如果在项目中有些操作需要在Bean类构造后执行,可以使用@PostConstruct注解,实例代码如下
@RestController @RequestMapping("/api") public class ApiController extends BaseController { @PostMapping("/login") public User login(@RequestBody User user){ //代码 } @GetMapping("/getUser") public User getUser(@RequestParam String userName, @RequestParam String userPhone){ //代码 } } 企商汇相关文章
自制迷你电脑盒子教程大全(打造个性化的迷你电脑盒子,实现您的创意想法)
摘要:在这个数字化时代,电脑已经成为人们生活中不可或缺的一部分。而迷你电脑盒子作为一种小巧、便携的电脑设备,受到越来越多人的青睐。本文将为您提供一份详细的自制迷你电脑盒子教程大全,让您能...2025-11-05
MySQL:mysqldump 100M的数据导入需要几个小时?
这个问题相对简单,但是第一次遇到这种问题,仅此记录。问题主要是一个mysqldump导出也就100来M的文件,导入居然要几个小时,更换多个实例后都很慢,文件大小如下:当然这种可以重现的问题就再次导入看2025-11-05
家人们,见证历史了。微软蓝屏BSOD)的消息毫不夸张地登顶各大热搜、热榜,全球打工人被迫狂欢喜提1天休假。然而随着事件的发酵,导致这次全球最大IT宕机的罪魁祸首也逐渐浮出了水面。不过非常drama的是2025-11-05- 复制unsignedlongmy_bitmap[8] 1.2025-11-05
腾龙17-50佳能扣镜头评测(画质出众功能全面佳能佳品推荐)
摘要:腾龙17-50佳能扣镜头是一款备受好评的镜头产品,以其卓越的画质表现和全面的功能而备受摄影爱好者的喜爱。本文将从多个角度对腾龙17-50佳能扣镜头进行评测,详细介绍其优点、缺点以及...2025-11-05- 复制root@ubuntu:~#dockerrun-i-p3000:3000grafana/grafana Unabletofindimagegrafana/grafana:la2025-11-05

最新评论