在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(); // 获取用户名 |
非常方便。