spring注解之配置注解
@Configuration
标识该类是一个 Spring 配置类,可以通过@Autowired注解注入
@ConfigurationProperties
作用:将外部配置文件(如 application.properties/application.yml)中的属性批量绑定到 Java 对象的字段上。
参数 prefix = "email":指定配置项的前缀。
email.host=smtp.example.com → 绑定到 host 字段
email.username=admin@test.com → 绑定到 username 字段
email.password=123456 → 绑定到 password 字段
@ConditionalOnProperty
作用:条件化加载配置,仅当指定的配置属性存在且满足条件时,才启用被注解的 Bean/配置。
参数解析:
prefix = "email":配置项的前缀。
name = {"host", "username", "password"}:要求必须同时存在这三个配置项。
效果:仅当配置文件中完整设置了 email.host、email.username 和 email.password 时,当前配置类才会生效。缺少任一配置,整个配置类将被忽略。
总结
/*** 招聘数据邮件配置* @author : lvyiting* @date : 2025/05/27**/
@Data
@Configuration
@ConfigurationProperties(prefix = "recruit.email")
public class RecruitEmailProperties {/*** 邮件公共配置*/private Common common;/*** 发送邮件配置*/private Send send;/*** 接收邮件配置*/private Receive receive;@Datapublic static class Common {/*** 邮件用户名*/private String username;/*** 邮件密码*/private String password;}@Datapublic static class Send {/*** 发送邮件服务器地址*/private String host;}@Datapublic static class Receive {/*** 接收邮件服务器地址*/private String host;/*** 接收邮件服务器端口*/private int port;/*** 接收邮件服务器协议*/private String protocol;}
}
recruit:email:common:username: blue@niuxiaoer.netpassword: DPZhbaZgyyaPbFATsend:host: smtp.exmail.qq.comreceive:host: imap.exmail.qq.comport: 993protocol: imap