Spring注解解析大全

一、spring组件注解,用于标记组件类型并将其注册到Spring容器中。

1. @Component

        用于将类标记为Spring组件,以便在应用程序的上下文中自动扫描和注册。

2. @Controller

        用于标记类为Spring MVC的控制器,处理HTTP请求和响应。

3. @RestController

        用于标记类为Spring MVC的REST控制器,处理RESTful(风格)请求和响应。

4. @Service

        用于标记类为服务层组件,通常用于处理业务逻辑。

5. @Repository

        用于标记类为数据访问层组件,通常与数据库交互。

6. @Configuration

        用于标记类为配置类,通常与 @Bean 一起使用,用于定义Bean的创建和配置。

7. @Aspect

        用于定义切面(Aspect),通常与 @Before@After 等切点注解一起使用,实现面向切面编程(AOP)。

8. @RestControllerAdvice

        用于定义全局的异常处理和响应处理。

二、依赖注入注解:用于自动装配依赖项和注入配置值。

1. @Autowired

        用于自动装配依赖项,通过类型匹配自动将合适的Bean注入到目标类中。

2. @Qualifier

        与 @Autowired 一起使用,用于指定具体的Bean名称进行注入,可以解决bean 类型冲突问题。

3. @Value

        用于注入外部配置文件(.properties  .yml等文件)中的值。

4.@Primary

        用于标记一个 bean,表示它是在多个候选 bean 中的首选项。当存在多个相同类型的 bean 时,Spring 将选择被 @Primary 注解标记的 bean 作为首选注入。

5.@Priority

        通过为 bean 添加 @Priority 注解,可以指定它们的优先级顺序。较低的数值表示较高的优先级。在依赖注入时,具有较高优先级的 bean 将首先被注入。

三、配置注解:用于配置Spring应用程序的行为。

1. @Bean

        用于在配置类中定义Bean,并将其添加到Spring应用程序上下文中。

2. @Scope

        用于指定Bean的作用域,例如单例(Singleton)、原型(Prototype)等。

3. @ComponentScan

        用于指定要扫描的包,以查找Spring组件。

4. @Conditional

        用于在特定条件下进行Bean的创建和注册。

5. @Transactional

        用于标记事务管理的方法或类。

6. @EnableAutoConfiguration

        用于自动配置Spring Boot应用程序的类。

四、HTTP处理注解:用于处理HTTP请求和响应。

1. @RequestMapping

        用于将HTTP请求映射到控制器的处理方法。

2. @PathVariable

        用于从URL路径中提取变量值。

3. @RequestParam

        用于从HTTP请求中获取请求参数的值。

五、生命周期和方法执行注解:用于控制Bean的生命周期和方法的执行方式。

1. @PostConstruct

        用于在Bean初始化之后执行自定义的初始化方法。

2. @PreDestroy

        用于在Bean销毁之前执行自定义的清理方法。

3. @Async

        用于将方法标记为异步执行,可以在后台线程中执行耗时操作。

4. @Scheduled

        用于定时执行方法,可以指定执行时间间隔或固定的执行时间。

5. @ConditionalOnProperty

        用于根据配置属性的值来决定是否创建Bean或执行特定的配置。

6. @EnableCaching

        用于启用Spring缓存功能。

7. @Validated

        用于启用方法参数的验证,通常与JSR-303验证注解(@Min等)一起使用。

六.、缓存和性能注解:用于控制缓存和提高性能。

1. @Cacheable

        用于启用方法级别的缓存,并将结果缓存起来,以提高性能。

2. @CacheEvict

        用于清除缓存中的数据。

你可能感兴趣的:(Spring学习,spring,java,后端)