vps做网站的环境,网店美工课程,郴州网站制作公司在哪里,wordpress 默认图片1 ConfigurationProperties
ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 #xff0c;通过指定的前缀#xff0c;来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换#xff0c;能够管理一个类别的所有配置信息ConfigurationProperties
ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 通过指定的前缀来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换能够管理一个类别的所有配置信息一次性加载便于操作 由上图可知Target({ ElementType.TYPE, ElementType.METHOD }) ConfigurationProperties注解可用在类上和方法上必须是配置类中的标注了Bean注解的方法。接下来我将用代码来演示ConfigurationProperties的两种用途。演示项目的解构为maven项目引入的相关依赖为
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.4.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/version/dependencyapplication.yml配置文件信息如下
userinfo:id: 1username: lyfpassword: xxxxxxxemail: it-apimail.xxxxx.comuserinfo1:id: 11username: lyf1password: xxxxxxxemail: it-apimail.xxxxx.com11.1 用在类上
/*** Author lyf* Date 2023/2/15 - 08:56* Description**/
Data
Component(user1)
ConfigurationProperties(prefix userinfo)
public class User {private int id ;private String username;private String password;private String email;
}
ConfigurationProperties(prefix “userinfo”) 意指将application.yml中前缀为userinfo的配置信息按照属性一一对应加载到User对象上
/*** Author lyf* Date 2023/2/15 - 09:20* Description**/
RestController
public class UserController {Qualifier(user1)Autowiredprivate User user1;GetMapping(/getUser1)public String getUser1(){return user1.toString();}
}启动项目后请求localhost8080/getUser1成功将userinfo前缀中配置的信息输出
1.2 用在方法上
Configuration
public class Demo1 {Bean(user2)ConfigurationProperties(prefix userinfo1)public User user(){return new User();}
}
ConfigurationProperties(prefix “userinfo1”) 结合配置类中Bean方法来将配置文件中前缀为userinfo1的配置信息加载到User实例上。 这里可以看到仅仅通过new关键字实例一个User对象并没有看到set 属性的操作这是Spring框架帮助我们做了这一步所以User类不能忽略 get set 方法否则无法将配置信息设置到对应的类属性中。User类上Data注解实现get set 方法
/*** Author lyf* Date 2023/2/15 - 09:20* Description**/
RestController
public class UserController {Qualifier(user2)Autowiredprivate User user1;GetMapping(/getUser2)public String getUser2(){return user2.toString();}
}启动项目后请求localhost8080/getUser2成功将userinfo1前缀中配置的信息输出
2 EnableConfigurationProperties
EnableConfigurationProperties注解的主要作用是让ConfigurationProperties注解生效。Target(ElementType.TYPE) 意味着只能作用在类上。EnableConfigurationProperties注解的主要用途是根据导入的配置类信息【使用】进一步构造需要Bean 信息一般都搭配ConfigurationBean使用。
2.1 EnableConfigurationProperties使用
/*** Author lyf* Date 2023/2/15 - 10:17* Description**/
Data
public class UUser {private int id ;private String username;private String password;private String email;
}
/*** Author lyf* Date 2023/2/15 - 09:29* Description**/Configuration
EnableConfigurationProperties(User.class)
public class Demo2 {private User user1;Bean(user3)public UUser autoconfiguration(User user1){this.user1user1;UUser newUsernew UUser();newUser.setId(2);newUser.setUsername(XXXX);newUser.setEmail(XXXXX);newUser.setPassword(XXXXXX);return newUser;}
}autoconfiguration方法依赖于User实例尽管在autoconfiguration(User user1方法中没有对参数赋值操作EnableConfigurationProperties(User.class) 告知当前配置类使用User类信息所以在调用autoconfiguration方法时会先从Spring IOC 容器中获取名称为user1的Bean。
/*** Author lyf* Date 2023/2/15 - 09:20* Description**/
RestController
public class UserController {Qualifier(user3)Autowiredprivate UUser user1;GetMapping(/getUser2)public String getUser3(){return user3.toString();}
}启动项目后请求localhost8080/getUser3成功将构建UUser对象信息成功输出