SpringBoot的核心注解是@SpringBootApplication:
@SpringBootConfifiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfifiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfifiguration.class})。
@ComponentScan:Spring组件扫描。
@RestController
作用:与@Controller类似,但是@RestController会自动将返回值转换为JSON格式。
@RequestMapping
作用:用于映射请求URL和处理方法。
@RequestMapping 是Spring MVC框架中的一个核心注解,它用于映射HTTP请求和控制器方法之间的关系。它可以用于类级别和方法级别,用于指定请求URL和HTTP方法(GET、POST、PUT、DELETE等)。
@ResponseBody
作用:用于将方法的返回值转换为HTTP响应的主体。
@ResponseBody是Spring MVC框架中的一个注解,用于将控制器方法的返回值转换为HTTP响应体中的数据。
@Autowired
作用:用于自动装配Spring容器中的Bean。
@Component
作用:用于标识一个类是Spring容器中的组件。
@Component是Spring框架中的一个通用注解,用于标注一个类作为Spring Bean。
@Service
@Service是Spring框架中的一个注解,用于标注一个类作为服务类(Service)。
@Configuration
作用:用于标识一个类是Spring的配置类。
@Configuration是Spring框架中的一个注解,用于标注一个类作为配置类。
@Bean
作用:用于将一个方法返回的对象注册到Spring容器中。
@Bean是Spring框架中的一个注解,用于将一个方法返回的对象注册为一个Spring Bean。
@Conditional
作用:用于根据条件判断是否创建Bean或执行配置。
@PropertySource
作用:用于指定配置文件的位置。
@PropertySource是Spring框架中的一个注解,用于指定一组属性文件的位置,从而可以在Spring应用程序中使用这些属性。
@ExceptionHandler
作用:用于处理异常。
@ResponseStatus
作用:用于指定异常的HTTP响应状态码。
@ControllerAdvice
作用:用于全局处理异常。
@ControllerAdvice是Spring框架中的一个注解,用于定义全局控制器通知。
在Spring MVC框架中,控制器通知是一些特殊的组件,它们可以在控制器方法执行前、执行后或抛出异常时执行一些额外的逻辑处理。使用@ControllerAdvice注解可以定义全局控制器通知,它可以应用于所有的控制器。
@CrossOrigin
作用:用于解决跨域问题。
@CrossOrigin是Spring框架中的一个注解,用于解决跨域资源共享(CORS)问题。
跨域资源共享是浏览器安全策略的一部分,它限制了浏览器在不同域名之间发送和接收HTTP请求。使用@CrossOrigin注解可以指定允许跨域访问的域名和HTTP方法。
@Async
作用:用于将方法标记为异步执行。
在Spring框架中,如果一个方法需要执行一些比较耗时的操作,如果这个方法是在主线程中执行,就会导致主线程被阻塞,用户界面无法响应用户的操作。使用@Async注解可以将这个方法的执行异步化,让主线程继续执行其他任务,提高应用程序的响应性能。
@Cacheable
作用:用于缓存方法的返回值。
在Spring框架中,如果一个方法的返回结果是固定的,而且这个方法的执行比较耗时,我们可以使用@Cacheable注解将这个方法的返回结果缓存起来,下次执行这个方法时直接从缓存中获取结果,避免重复执行。
@CacheEvict
作用:用于清除缓存。
@CacheEvict是Spring框架中的一个注解,用于清空缓存中的数据。
在Spring框架中,如果一个方法的执行会导致缓存数据的失效,我们可以使用@CacheEvict注解将这个方法的缓存数据清空,这样下次执行这个方法时就会重新查询数据并缓存起来。
@CachePut
作用:用于更新缓存中的数据。
@CachePut是Spring框架中的一个注解,用于更新或添加缓存中的数据。
在Spring框架中,如果一个方法的执行会导致缓存数据的更新或添加,我们可以使用@CachePut注解将这个方法的返回结果更新或添加到缓存中。
@EnableTransactionManagement
作用:用于启用事务管理功能。
@Transactional是Spring框架中的一个注解,用于标识一个方法或类需要使用事务进行操作。
在Spring框架中,如果一个方法需要对数据库进行操作,我们可以使用@Transactional注解来确保这个操作在一个事务中进行,从而保证操作的原子性、一致性、隔离性和持久性。
@EnableAspectJAutoProxy
作用:用于启用AOP功能。
@EnableAspectJAutoProxy是Spring框架中的一个注解,用于启用自动代理功能,以便使用AOP(面向切面编程)进行编程。
在Spring框架中,如果需要使用AOP来实现某些功能,我们可以使用@EnableAspectJAutoProxy注解来启用自动代理功能,从而在运行时自动为我们生成代理对象,以便进行切面编程。
@Aspect
作用:用于定义切面。
@Aspect是Spring框架中的一个注解,用于标识一个类为切面类,从而可以在该类中定义切面逻辑以实现AOP(面向切面编程)。
在Spring框架中,如果需要使用AOP来实现某些功能,我们可以使用@Aspect注解来标识一个类为切面类。在切面类中,我们可以定义切面逻辑,包括切入点、通知类型和切面顺序等,从而实现AOP编程的功能。
@Around
作用:用于在方法执行前后执行通知。
@Around是Spring框架中的一个注解,用于定义在目标方法执行前后执行的通知类型,以实现AOP(面向切面编程)。
在Spring框架中,如果需要在目标方法执行前后执行某些操作,我们可以使用@Around注解来定义一个通知类型。在这个通知类型中,我们可以编写自己的逻辑代码,从而实现AOP编程的功能。
@AfterThrowing
作用:用于在方法抛出异常后执行通知。
@AfterThrowing是Spring框架中的一个注解,用于定义在目标方法抛出异常后执行的通知类型,以实现AOP(面向切面编程)。
在Spring框架中,如果需要在目标方法抛出异常后执行某些操作,我们可以使用@AfterThrowing注解来定义一个通知类型。在这个通知类型中,我们可以编写自己的逻辑代码,从而实现AOP编程的功能。
@Data
作用:用于自动生成JavaBean的getters、setters、toString、hashCode和equals方法。
@Data是Lombok框架中的一个注解,可以自动生成Java类的getter、setter、equals、hashCode和toString等方法。
在Java开发中,我们经常需要编写一些POJO类来表示数据结构。这些类通常包含一些成员变量,并且需要编写相应的getter、setter、equals、hashCode和toString等方法。这些方法通常是相似的,而且比较繁琐。为了简化这个过程,Lombok框架提供了一个@Data注解,可以自动生成这些方法。
使用@Data注解非常简单,只需要在Java类上添加这个注解即可。在使用时,我们可以直接访问类的成员变量,并且可以自动生成相应的getter、setter、equals、hashCode和toString等方法。
@EqualsAndHashCode
作用:用于生成hashCode和equals方法。
@EqualsAndHashCode是Lombok框架中的一个注解,用于自动生成equals()和hashCode()方法。
在Java开发中,我们经常需要比较两个对象是否相等,并且需要根据对象的属性生成一个hashCode值。为了简化这个过程,Lombok框架提供了一个@EqualsAndHashCode注解,可以自动生成equals()和hashCode()方法。
使用@EqualsAndHashCode注解非常简单,只需要在Java类上添加这个注解即可。在使用时,Lombok会根据类的属性自动生成equals()和hashCode()方法。如果两个对象的所有属性都相等,那么它们的equals()方法返回true,并且它们的hashCode()方法返回相同的值。