侧边栏壁纸
博主头像
程序员の小站博主等级

行动起来,活在当下

  • 累计撰写 51 篇文章
  • 累计创建 35 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

SpringBoot中常用注解

Administrator
2025-01-15 / 0 评论 / 0 点赞 / 4 阅读 / 5305 字
温馨提示:
本文最后更新于 2025-01-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 组件注册

1.1 @Bean 、@Scope

@Bean是给容器中注册组件,@Scope生命组件的作用范围(SCOPE_PROTOTYPE,SCOPE_SINGLETON)

@Bean
public static ManagementContextFactory servletWebChildContextFactory() {
		return new ManagementContextFactory(WebApplicationType.SERVLET, ServletWebServerFactory.class,
				ServletWebServerFactoryAutoConfiguration.class);
	}

1.2 @Controller、 @Service、@Repository、@Component

@Controller:用于标识控制层组件(Controller),即处理用户请求和响应的部分。在Spring MVC中,通常用来处理Web请求,负责将用户请求映射到相应的处理方法,并处理后返回视图或数据给用户。

@Service: 用于标识服务层组件(Service),负责业务逻辑的处理。Service层通常用来编写业务逻辑,如数据处理、事务管理等。它们被设计用来支持控制器和数据访问对象(DAO)之间的协作。

@Repository用于标识数据访问层组件(Repository),即DAO组件。Repository层通常用来操作数据库或执行持久化操作,包括查询数据库、保存实体等。它们通常是与持久化技术(如Hibernate)集成的。

@Component:是Spring中最普遍的通用组件注解,可以用于任何层次的组件。当类不符合更具体角色(如@Controller、@Service、@Repository)时,可以使用@Component来标识它们为Spring组件,使它们成为Spring容器管理的Bean。

1.3 @Configuration、@SpringBootConfiguration

@Configuration声明这是一个配置类,替换以前的配置文件
@Configuration和@SpringBootConfiguration都是Spring框架中的注解,用于标记一个类作为配置类。它们的作用是相同的,都可以用来定义Bean。但是,@SpringBootConfiguration是Spring Boot框架中的注解,它继承自@Configuration注解,并且可以自动扫描所有的jar包,并将其中的自动配置类加载到Spring容器中。因此,在Spring Boot应用程序中,通常使用@SpringBootConfiguration注解来标记一个类作为配置类。

1.4 @Import

第三方组件无法使用component以及那些衍生注解,import注解必须放到configuration注解上面,倒入容器bean的名字默认是全类名。springbootconfiguration注解也是configuration注解的衍生注解。

1.5 @ComponentScan

通过包扫描的方法给容器中注入组件

2. 条件注解(@Conditional)

如果注解指定的条件成立,则出发指定的行为

  • @ConditionalOnClass:如果类路径中存在这个类,则触发指定行为
  • @ConditionalOnMissingClass:如果类路径中不存在这个类,则触发指定行为
  • @ConditionalOnBean:如果容器中存在这个Bean(组件),则触发指定行为
  • @ConditionalOnMissingBean:如果容器中不存在这个Bean(组件),则触发指定行为
  • @ConditionalOnBean(value=组件类型,name=组件名字):判断容器中是否有这个类型的组件,并且名字是指定的值

3. 属性绑定

3.1 @ConfigurationProperties

@ConfigurationProperties(prefix="配置文件中的配置数据前缀 ")该注解在类上使用,单独使用的话要结合@compent等相关注解。

3.2 @EnableConfigurationProperties

SpringBoot默认只扫描自己主程序所在的包。如果导入第三方包,即使组件上标注了 @Component、@ConfigurationProperties 注解,也没用。因为组件都扫描不进来,此时使用这个注解就可以快速进行属性绑定并把组件注册进容器

3.3 @Value

取值、计算机环境变量、JVM系统。xxxx。@Value(“${xx}”)

4. 组件注入

4.1 @Autowired

自动装配

4.2 @Qualifier

精确的指定

4.3 @Resource

5. 其他注解

5.1 @DependsOn

组件之间声明依赖关系

5.2@Lazy

组件懒加载(最后使用的时候才创建)

5.3 @Primary

同类组件如果有多个,标注主组件

5.4 @Order

数字越小优先级越高,就会越先工作

5.5 @Profile

基于多环境激活

5.6 @Lookup

单例组件依赖非单例组件,非单例组件获取需要使用方法
@Indexed 需要引入依赖

org.springframework
spring-context-indexer
true

0

评论区