springbootconfiguration相当于哪些注解,spring boot configuration注解

  springbootconfiguration相当于哪些注解,spring boot configuration注解

  properties配置文件如下:

  人类。姓名=尤赫曼先生。年龄=21人类。性别=男性如何把properties里面的配置绑定到JavaBean里面,以前我们的做法如下:

  公共类属性util { public static void get Properties(Person Person)抛出io异常{ Properties Properties=新属性();属性。load(新文件inputstream( src/main/resources/demo。属性’));//得到配置文件键的名字列举枚举=属性。属性名();while(枚举。hasmoreelements()){ String key=(String)枚举。next element();字符串值=属性。getproperty(key);系统。出去。println( key= key ————3354 value= value);//封装到JavaBean //以下内容省略} } }输出结果:

  钥匙=人。姓名————3——价值=尤基先生=人类。年龄——3——值=21k键=人。性别——33——值=男性

  进程结束,退出代码为0

  可以看到这个过程十分繁杂,但是在跳羚中这个过程将会变得非常简单。

  在SpringBoot中有如下3种方法:

  1.@配置属性注解@组件(或@控制器或@服务或@仓库)注解

  只有在容器中的组件,才会拥有跳羚提供的强大功能,也就是如果我们需要使用到@配置属性注解,那么我们首先要保证该对JavaBean对象在国际奥委会容器中,所以需要用到成分注解来添加组件到容器中@配置属性注解中前缀与价值互相都是别名

  也就是说@配置属性(值= human )与@配置属性(前缀=人类)是一样的前缀和价值指的是前缀的意思代码测试: properties配置文件:

  人类。姓名=尤赫曼先生。年龄=21人类。性别=男性Person类:

  @Component ////只有在容器中的组件,才会拥有跳羚提供的强大功能@配置属性(值= human )公共类人员{公共字符串名称公共年龄公共字符串性别;public Person(){ } public Person(字符串名称,int年龄,字符串性别){ this。name=名称;this.age=年龄;this.gender=性别;}公共字符串getName() {

   return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Person{" + "name=" + name + + ", age=" + age + ", gender=" + gender + + }; }}测试类如下:

  

//@Controller////@ResponseBody以字符串的方式写给浏览器,而不是跳转到某个页面//@ResponseBody//@RestController = @Controller + @ResponseBody@RestControllerpublic class HelloController { //自动注入属性 @Autowired Person person; @RequestMapping("/person") public Person getPerson(){ return person; }}

测试结果:

 

  

 

  

@ConfigurationProperties注解+@EnableConfigurationProperties注解

 

  

这种方式@EnableConfigurationProperties注解一定要在配置类上写,@EnableConfigurationProperties的意思是开启属性配置功能,开启谁的属性配置功能呢,因为我们上面的Person类想进行配置绑定,所以我们在后面加上参数Person.class:@EnableConfigurationProperties(Person.class)

 

  @EnableConfigurationProperties(Person.class)的作用就是把这个Person组件注册到容器中,对象的名称为:human-com.ysw.boot.properties.Person 其中human是@ConfigurationProperties(value = "human")中前缀value的值

  在Person类上还是有@ConfigurationProperties注解,这种方式把Person类上的@Component注解换成了配置类上的@EnableConfigurationProperties(Person.class)注解

  

 

  

 

  这种方式主要用在引用第三方包时,比如第三方包中有一个Person类,该类中没有使用@Component,我们也不能够给第三方包中的类加上@Component,这个时候就可以使用在配置类上加上@EnableConfigurationProperties注解的方法。

  

@ConfigurationProperties注解+@Import注解

 

  

使用@Import给容器中自动创建出这个类型的组件、默认组件的名字就是全类名@Import注解与2中的@ConfigurationProperties注解效果是一样的只不过他们注册到容器中的名称不同:@ConfigurationProperties注解注册到容器中对象的名称为:human-com.ysw.boot.properties.Person 其中human是@ConfigurationProperties(value = "human")中前缀value的值@Import注解注册到容器中对象的名称为:com.ysw.boot.properties.Person配置类:

 

  

 

  Person类:

  

 

  测试类:

  

 

  application.properties文件:

  

server.port=8888human.name=Mr.Yuhuman.age=21human.gender=male222

测试结果:

 

  

 

  到此这篇关于SpringBoot中@ConfigurationProperties注解实现配置绑定的三种方法的文章就介绍到这了,更多相关SpringBoot配置绑定方法内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: