在SpringBoot中注入自定义Bean
前言
在使用SpringBoot的过程中,我们往往需要通过配置文件设置一些配置。但更多时候,我们需要由Spring容器来注入这些配置并进行统一管理。下面将阐释具体方法。
1. 配置文件
假设我们需要自定义SSH远程连接的配置,那么我们可以在application.yml中添加如下配置:
1 | ssh: |
在这个文件中,我们定义了SSH连接中基本的配置项,包括用户名、密码、主机地址、端口号和目标目录。其中,目标目录主要用于存储SCP命令发送过去的文件。
为了读取配置,我们可以使用@ConfigurationProperties注解,并指定配置文件的前缀。例如:
1 | /** |
P.S.:这里命名为
SSHProperties主要是因为需要适应RuoYi框架的命名规范。如果你并没有使用RuoYi框架,你完全可以命名为SSHConfig。
P.P.S:实际上,
RuoYi本身并没有集成lombok的Data注解,所以后面理论上需要有大量的Getter和Setter方法。这里为了简洁一点,就直接用注解代替了。
@Component注解用于将配置类注册为Spring容器中的组件,这样我们就可以在其他地方通过@Autowired注解来注入这个配置类。
@ConfigurationProperties注解用于将配置文件中的配置项映射到配置类中。prefix属性用于指定配置文件的前缀,这样我们就可以只读取前缀为ssh的配置项。
假设我们接下来需要去SSHServiceImpl中注入这个方法,那么比较好的解决方案就是使用注解:
1 |
|
当然,有些人可能会将这个修改为构造函数注入,这在另一篇文章中有提到,这就是另外一回事了,我们单独讨论。
之后,我们便可以在SSHServiceImpl中使用sshProperties对象来获取配置项。使用过程中,我们就可以直接获取到:
1 | this.sshProperties.getUser(); // 获取用户名 |
非常方便。