您现在的位置是:亿华云 > 域名

SpringBoot常用注解总结

亿华云2025-10-09 09:05:26【域名】9人已围观

简介一、启动相关1、@SpringBootApplicationSpringBootApplication注解: @Target(ElementType.TYPE)@Retention(Re

一、常用启动相关

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、@Scope

spring容器管理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){             //代码      } } 站群服务器

很赞哦!(2962)