一、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
用于清除缓存中的数据。