springboot工程中相关注解 持续更新中

@RequiredArgsConstructor详解

什么是@RequiredArgsConstructor?

@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口,如果每个接口都写上@Autowired,这样看起来就会很繁琐,@RequiredArgsConstructor注解可以代替@Autowired注解

@RequiredArgsConstructor怎么使用?

导包
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.22</version>
</dependency>
使用

将@RequiredArgsConstructor写在类上面
在这里插入图片描述
注意点

1、声明的变量必须加上final修饰
2、基于构造方法为属性赋值,容器通过 调用类的构造方法将其进行依赖注入

@AllArgsConstructor和@RequiredArgsConstructor区别

  • @AllArgsConstructor 生成一个包含所有字段的构造方法,如果使用了@Value注入, @Value注入会失效
    原因时因为@Value注解是通过对象的set方法赋值的,构造方法的执行还在set方法之前,所以在构造方法中使用变量会变量为null
  • @RequiredArgsConstructor会将类的每一个final字段或者non-null字段生成一个构造方法
  • 总结:@AllArgsConstructor和@RequiredArgsConstructor都可以用来替代@Autowired写法,区别在于@RequiredArgsConstructor必须要有final修饰,如果有@Value注解,@RequiredArgsConstructor修饰可以成功注入,@AllArgsConstructor修饰会注入失败

@Component

@Component是Spring框架中的一个通用注解,用于标记一个类为组件,让Spring能够在应用程序启动时自动扫描并加载这些组件。

1. 基本使用

在类上添加@Component注解,即可将该类标记为一个组件,例如:

@Component
public class MyComponent {
    // ...
}

这样,Spring会自动扫描该类,并将其实例化为一个Bean,可以在其他地方通过依赖注入的方式使用。

2.组件命名

@Component注解还可以指定组件的名称,通过value属性或者name属性进行设置,例如:

@Component("myComponent")
public class MyComponent {
    // ...
}

或者

@Component(value = "myComponent")
public class MyComponent {
    // ...
}

在通过依赖注入时,可以使用指定的名称来引用该组件。

3. 作用域配置

@Component注解还可以配置组件的作用域,通过scope属性进行设置,默认为单例模式(Scope.SINGLETON),也可以设置为原型模式(Scope.PROTOTYPE),例如:

@Component
@Scope("prototype")
public class MyComponent {
    // ...
}

这样,每次从容器中获取该组件的实例时,都会创建一个新的对象。

4. 组件自动扫描的范围

@Component注解只会自动扫描指定包及其子包下的组件,如果想要扫描其他包,可以在启动类上添加@ComponentScan注解,指定要扫描的包路径,例如:

@SpringBootApplication
@ComponentScan("com.example")
public class MyApplication {
    // ...
}

这样,Spring会自动扫描"com.example"包及其子包下的所有组件。

5. 组件的生命周期

当一个组件实例化后,Spring会管理其整个生命周期,包括初始化和销毁过程。可以通过在组件类中添加特定的方法并使用相应的注解来实现这些生命周期回调。

@PostConstruct:在组件初始化完成后调用的方法,常用于进行一些初始化操作。
@PreDestroy:在组件销毁之前调用的方法,常用于释放资源等清理操作。

@Component
public class MyComponent {
    
    @PostConstruct
    public void init() {
        // 初始化操作
    }
    
    @PreDestroy
    public void destroy() {
        // 清理操作
    }
}

以上就是@Component注解的常用配置和使用方式。通过@Component注解,可以将一个类标记为组件,使得Spring能够自动扫描并加载这些组件,简化了配置和管理的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值