小学网站asp,网站内容创造,网站链群怎么做,同人那个小说网站做的最好总结的了平时学习springboot常用的一些注解#xff0c;方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类#xff1a;
核心注解#xff1a;这些注解是springboot的基础#xff0c;用于启动、配置和管理springboot应用。Web MVC注解#xff1a;这些注解是… 总结的了平时学习springboot常用的一些注解方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类
核心注解这些注解是springboot的基础用于启动、配置和管理springboot应用。Web MVC注解这些注解是基于spring MVC框架的用于处理Web请求和响应。数据访问注解这些注解是基于spring data框架的用于操作数据库和缓存。测试注解这些注解是基于spring test框架的用于编写和运行单元测试和集成测试。
下面分别介绍这些注解的具体含义和用法。 目录
一、核心注解
1、SpringBootApplication
2、SpringBootConfiguration
3、EnableAutoConfiguration
4、ComponentScan
5、Component
6、Configuration
7、Bean
8、Import
9、ImportResource
10、Autowired
二、Web MVC注解
1、Controller
2、RestController
3、RequestMapping
4、GetMapping
5、PostMapping
三、数据访问注解
1、Repository
2、JpaRepository
3、Query
4、Param
5、Modifying
6、Transactional
7、Cacheable
四、测试注解
1、SpringBootTest
2、RunWith
3、Test
4、Before
5、After
6、BeforeClass
7、AfterClass
8、MockBean
9、SpyBean
总结 一、核心注解
1、SpringBootApplication
这是springboot最核心的注解用在主类上表示这是一个springboot应用它包含了以下三个注解
Configuration表示这是一个配置类相当于传统的XML配置文件可以使用Bean注解定义需要注册到spring容器中的bean。EnableAutoConfiguration表示启用自动配置根据当前类路径下的依赖包自动配置合适的bean如数据库连接池、事务管理器、Web服务器等。ComponentScan表示扫描当前包及其子包下的所有组件并注册为bean如控制器、服务、仓库等。
2、SpringBootConfiguration
这是一个组合注解相当于Configuration和EnableAutoConfiguration的结合。它可以用在主类上也可以用在其他配置类上表示这是一个springboot配置类。
3、EnableAutoConfiguration
这是一个组合注解相当于AutoConfigurationPackage和Import(AutoConfigurationImportSelector.class)的结合。它可以用在主类上也可以用在其他配置类上表示启用自动配置。它会根据当前类路径下的依赖包自动导入对应的自动配置类并注册相关的bean。如果不想使用某些自动配置类可以使用exclude或excludeName属性进行排除。
4、ComponentScan
这是一个组合注解相当于Retention(RetentionPolicy.RUNTIME)、Target(ElementType.TYPE)、Documented、Inherited和Repeatable(ComponentScans.class)的结合。它可以用在主类上也可以用在其他配置类上表示扫描指定包下的所有组件并注册为bean。它有以下几个属性
value或basePackages指定要扫描的包名或包名数组。basePackageClasses指定要扫描的包含组件的类或类数组。includeFilters指定要包含的过滤器或过滤器数组。excludeFilters指定要排除的过滤器或过滤器数组。lazyInit指定是否延迟初始化bean默认为false。nameGenerator指定bean名称生成器默认为AnnotationBeanNameGenerator。scopeResolver指定bean作用域解析器默认为AnnotationScopeMetadataResolver。scopedProxy指定是否使用代理创建作用域bean默认为ScopedProxyMode.DEFAULT。resourcePattern指定要扫描的资源模式默认为**/*.class。useDefaultFilters指定是否使用默认的过滤器默认为true。
5、Component
这是一个通用的注解表示这是一个组件可以被spring容器扫描和管理。它可以用在任何类上也可以作为其他注解的元注解如Controller、Service、Repository等。
6、Configuration
这是一个组合注解相当于Component和Scope(“singleton”)的结合。它表示这是一个配置类可以使用Bean注解定义需要注册到spring容器中的bean。它可以用在任何类上也可以作为其他注解的元注解如SpringBootConfiguration等。
7、Bean
这是一个方法级别的注解表示该方法返回的对象是一个bean需要注册到spring容器中。它只能用在被Configuration或Component等注解标记的类中。它有以下几个属性
name或value指定bean的名称或名称数组默认为方法名。initMethod指定bean的初始化方法名默认为空。destroyMethod指定bean的销毁方法名默认为(inferred)表示自动推断。autowire指定bean的自动装配模式默认为Autowire.NO。autowireCandidate指定bean是否是自动装配候选者默认为true。primary指定bean是否是首选候选者默认为false。
8、Import
这是一个类级别的注解表示导入其他配置类或组件类并注册为bean12。它可以用在任何类上也可以作为其他注解的元注解如EnableAutoConfiguration等。它有以下几种用法
Import(Class?…)导入一个或多个配置类或组件类并注册为bean。Import(ImportSelector.class)导入一个实现了ImportSelector接口的类并根据其返回值导入对应的配置类或组件类并注册为bean。Import(ImportBeanDefinitionRegistrar.class)导入一个实现了ImportBeanDefinitionRegistrar接口的类并根据其逻辑注册对应的bean定义。
9、ImportResource
这是一个类级别的注解表示导入一个或多个XML配置文件并将其中定义的bean注册到spring容器中12。它可以用在任何类上也可以作为其他注解的元注解。它有以下两个属性
value或locations指定要导入的XML配置文件的路径或路径数组。reader指定用于读取XML配置文件的BeanDefinitionReader实现类默认为XmlBeanDefinitionReader。
10、Autowired
这是一个字段级别或方法级别的注解表示自动装配依赖的bean12。它可以用在任何字段或方法上也可以作为其他注解的元注解。它有以下两个属性
required指定依赖的bean是否必须存在默认为true。value指定依赖的bean的名称默认为空。
二、Web MVC注解
1、Controller
这是一个组合注解相当于Component和ControllerAdvice的结合 。它表示这是一个控制器类可以处理Web请求并返回视图或数据。它可以用在任何类上也可以作为其他注解的元注解如RestController等。
2、RestController
这是一个组合注解相当于Controller和ResponseBody的结合 。它表示这是一个REST风格的控制器类可以处理Web请求并返回JSON或XML格式的数据。它可以用在任何类上也可以作为其他注解的元注解。
3、RequestMapping
这是一个类级别或方法级别的注解表示映射Web请求到对应的处理方法 。它可以用在任何类或方法上也可以作为其他注解的元注解如GetMapping、PostMapping等。它有以下几个属性
value或path指定要映射的请求路径或路径数组。method指定要映射的请求方法或方法数组如GET、POST等。params指定要映射的请求参数或参数数组如username、age!10等。headers指定要映射的请求头或头数组如Acceptapplication/json、Content-Typetext/plain等。consumes指定要映射的请求内容类型或类型数组如application/json、text/plain等。produces指定要映射的响应内容类型或类型数组如application/json、text/plain等。name指定映射的名称默认为空。
4、GetMapping
这是一个组合注解相当于RequestMapping(method RequestMethod.GET)的结合 。它表示映射GET请求到对应的处理方法。它可以用在任何方法上也可以作为其他注解的元注解。它有以下几个属性
value或path指定要映射的请求路径或路径数组。params指定要映射的请求参数或参数数组。headers指定要映射的请求头或头数组。consumes指定要映射的请求内容类型或类型数组。produces指定要映射的响应内容类型或类型数组。name指定映射的名称默认为空。
5、PostMapping
这是一个组合注解相当于RequestMapping(method RequestMethod.POST)的结合 。它表示映射POST请求到对应的处理方法。它可以用在任何方法上也可以作为其他注解的元注解。它有以下几个属性
value或path指定要映射的请求路径或路径数组。params指定要映射的请求参数或参数数组。headers指定要映射的请求头或头数组。consumes指定要映射的请求内容类型或类型数组。produces指定要映射的响应内容类型或类型数组。name指定映射的名称默认为空。
三、数据访问注解
1、Repository
这是一个组合注解相当于Component和RepositoryDefinition的结合 。它表示这是一个仓库类用于封装数据访问逻辑。它可以用在任何类上也可以作为其他注解的元注解如JpaRepository等。它有以下两个属性
value指定仓库的名称默认为空。transactionManagerRef指定事务管理器的引用默认为空。
2、JpaRepository
这是一个组合注解相当于Repository和QueryByExampleExecutor的结合 。它表示这是一个基于JPA的仓库接口可以继承CrudRepository或PagingAndSortingRepository并提供一些额外的方法如saveAndFlush、deleteInBatch等。它可以用在任何接口上也可以作为其他注解的元注解。它有以下两个属性
value指定仓库操作的实体类默认为空。transactionManagerRef指定事务管理器的引用默认为空。
3、Query
这是一个方法级别的注解表示使用自定义的查询语句来执行数据访问操作 。它可以用在任何方法上也可以作为其他注解的元注解。它有以下几个属性
value或nativeQuery指定查询语句或原生查询语句默认为空。countQuery或countProjection指定用于分页查询时计算总数的查询语句或投影字段默认为空。name指定命名查询的名称默认为空。countName指定用于分页查询时计算总数的命名查询的名称默认为空。clearAutomatically指定是否在执行更新或删除操作后自动清除持久化上下文默认为false。flushAutomatically指定是否在执行更新或删除操作前自动刷新持久化上下文默认为false。
4、Param
这是一个参数级别的注解表示将方法参数绑定到查询语句中的占位符或命名参数 。它只能用在被Query等注解标记的方法中。它有以下一个属性
value指定参数绑定到查询语句中的占位符或命名参数默认为空。
5、Modifying
这是一个方法级别的注解表示该方法执行更新或删除操作 。它只能用在被Query等注解标记的方法中。它有以下两个属性
clearAutomatically指定是否在执行更新或删除操作后自动清除持久化上下文默认为false。flushAutomatically指定是否在执行更新或删除操作前自动刷新持久化上下文默认为false。
6、Transactional
这是一个类级别或方法级别的注解表示该类或方法需要进行事务管理 。它可以用在任何类或方法上也可以作为其他注解的元注解。它有以下几个属性
value或transactionManager指定事务管理器的名称或引用默认为空。propagation指定事务传播行为默认为Propagation.REQUIRED。isolation指定事务隔离级别默认为Isolation.DEFAULT。timeout指定事务超时时间秒默认为-1不超时。readOnly指定事务是否只读默认为false。rollbackFor或rollbackForClassName指定需要回滚事务的异常类或类名数组默认为空所有异常都回滚。noRollbackFor或noRollbackForClassName指定不需要回滚事务的异常类或类名数组默认为空所有异常都回滚。
7、Cacheable
这是一个方法级别的注解表示该方法的返回值需要缓存 。它可以用在任何方法上也可以作为其他注解的元注解。它有以下几个属性
value或cacheNames指定缓存的名称或名称数组默认为空。key指定缓存的键默认为方法参数的哈希值。keyGenerator指定缓存的键生成器默认为空。cacheManager指定缓存管理器的名称或引用默认为空。cacheResolver指定缓存解析器的名称或引用默认为空。condition指定缓存的条件只有满足条件才进行缓存默认为空。unless指定缓存的否定条件只有不满足条件才进行缓存默认为空。sync指定是否使用同步模式进行缓存默认为false。
四、测试注解
1、SpringBootTest
这是一个类级别的注解表示该类是一个springboot测试类可以加载完整的springboot应用上下文 。它可以用在任何类上也可以作为其他注解的元注解。它有以下几个属性
value或properties指定要添加或覆盖的配置属性或属性数组默认为空。classes指定要加载的配置类或类数组默认为空。webEnvironment指定Web环境的类型默认为WebEnvironment.MOCK。args指定要传递给springboot应用的命令行参数或参数数组默认为空。
2、RunWith
这是一个类级别的注解表示使用指定的运行器来执行测试类 。它可以用在任何类上也可以作为其他注解的元注解。它有以下一个属性
value指定要使用的运行器类默认为空。
3、Test
这是一个方法级别的注解表示该方法是一个测试方法需要被运行器执行 。它可以用在任何方法上也可以作为其他注解的元注解。它有以下两个属性
expected指定期望抛出的异常类默认为None.class不期望抛出异常。timeout指定测试方法的超时时间毫秒默认为0不超时。
4、Before
这是一个方法级别的注解表示该方法需要在每个测试方法之前执行 。它可以用在任何方法上也可以作为其他注解的元注解。
5、After
这是一个方法级别的注解表示该方法需要在每个测试方法之后执行 。它可以用在任何方法上也可以作为其他注解的元注解。
6、BeforeClass
这是一个静态方法级别的注解表示该方法需要在所有测试方法之前执行一次 。它只能用在静态方法上也可以作为其他注解的元注解。
7、AfterClass
这是一个静态方法级别的注解表示该方法需要在所有测试方法之后执行一次 。它只能用在静态方法上也可以作为其他注解的元注解。
8、MockBean
这是一个字段级别或方法级别的注解表示该字段或方法返回值需要被模拟成一个bean并注册到spring容器中 。它可以用在任何字段或方法上也可以作为其他注解的元注解。它有以下两个属性
name指定模拟bean的名称默认为空。reset指定模拟bean是否需要在每个测试方法之后重置默认为MockReset.AFTER。
9、SpyBean
这是一个字段级别或方法级别的注解表示该字段或方法返回值需要被包装成一个spy对象并注册到spring容器中 。它可以用在任何字段或方法上也可以作为其他注解的元注解。它有以下两个属性
name指定spy对象的名称默认为空。reset指定spy对象是否需要在每个测试方法之后重置默认为MockReset.AFTER。
总结
springboot提供了许多方便实用的注解可以帮助开发者快速配置、启动、管理、访问和测试springboot应用。学习起来