当前位置: 首页 > 科技观察

SpringBoot常用注解汇总

时间:2023-03-15 19:25:13 科技观察

一、启动相关1、@SpringBootApplicationSpringBootApplication注解:@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@interfaceSpringBootApplication{在SpirngBoot启动类中,添加了这个启动注解,这个注解是一个组合注解,比较重要的三个:@SpringBootConfiguration继承自@Configuration。其实这两个功能是一样的。他们都把这个类标记为一个配置类@EnableAutoConfiguration。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包下的classes,需要通过Import注解Load实现,代码如下@Import({KafkaConfig.class,JedisConfig.class})//引入第三方jar中的配置类package2.配置相关以一般配置类使用的注解为例1.@Configuration@Configuration专门用于标记配置类,一般配合使用2.@Bean使用@Bean注解获取配置并返回相关实例,放入sping容器统一管理。3、@PropertySource的作用是加载指定路径下的property文件。4、@Value与@PropertySource注解一起使用,指定该字段对应的配置文件中的内容5、@Order使用@Order控制配置类的加载顺序结合以上注解,kafka配置示例代码为如下@Configuration@PropertySource("classpath:spring-kafka.properties")@Order(2)publicclassKafkaConfig{@Value("${spring.kafka.bootstrap-servers}")privateStringbootstrapServers;@BeanpublicKafkaListenerContainerFactory>kafkaListenerContainerFactory(){ConcurrentKafkaListenerContainerFactoryfactory=newConcurrentKafkaListenerContainerFactory();factory.setConsumerFactory(consumerFactory());factory.setConcurrency(1);//factory.getContainerProperties().setPollTimeout(1000);returnfactory;}}3.构建相关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")publicclassApiControllerextendsBaseController{@PostMapping("/login")publicUserlogin(@RequestBodyUseruser){/code}@GetMapping("/getUser")publicUsergetUser(@RequestParamStringuserName,@RequestParamStringuserPhone){//代码}}