Spring通过配置文件和注解实现属性赋值

 更新时间:2020年04月16日 08:56:34   作者:TomDu  
这篇文章主要介绍了Spring通过配置文件和注解实现属性赋值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

在实际开发当中,Spring中bean的属性直接赋值用的不是太多,整理这方面的资料,做一个小结,以备后续更深入的学习。

通过配置文件的方式

以配置文件的方式启动spring容器时,可以使用property标签的value给bean的属性赋值,赋值的形式有以下几种:

<--通过context:property-placeholder将properties文件中的值加载的环境变量中(properties中的属性值最终是以环境变量的形式存储的)>
<context:property-placeholder location="classpath:person.properties"/> 
 <bean id="person" class="com.atneusoft.bean.Person" >
    <--①通过基本数值直接赋值-->
    <property name="name" value="zhangsan"></property>
    <--②通过${}取出配置文件中的值-->
    <property name="age" value="${person.age}"></property>
     <--③通过Spring的El表达式-->
     <--<property name="age" value="10*2"></property>-->
</bean>

classpath下的properties文件内容

person.age=\u5C0F\u674E\u56DB

通过注解的方式

使用properties的value对应的注解给属性赋值

//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
  
  @Bean
  public Person person(){
    return new Person();
  }

}
public class Person {
  
  //使用@Value赋值;
  //1、基本数值
  //2、可以写SpEL; #{}
  //3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)
  
  @Value("张三")
  private String name;
  @Value("#{20-2}")
  private Integer age;
  
 /* @Value("${person.age}")  private Integer age;*/
}

注:

外部配置文件中的k/v保存到运行的环境变量中,可以直接在环境变量中取出对应的值

AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String property = environment.getProperty("person.age");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java整合Redis实现坐标附近查询功能

    Java整合Redis实现坐标附近查询功能

    这篇文章主要介绍了Java整合Redis实现坐标附近查询,我们可以在redis服务器使用命令 help xxx 查看指令的具体用法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2023-11-11
  • JAVA正则表达式的基本使用教程

    JAVA正则表达式的基本使用教程

    这篇文章主要给大家介绍了关于JAVA正则表达式的基本使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 利用java监听器实现在线人数统计

    利用java监听器实现在线人数统计

    过去使用ASP和ASP.NET两种编程的时候,都写过在线人数统计能,实现功能挺简单的!今天使用java来实现在线人数统计有点另类,是通过Java监听器实现的,需要的朋友可以参考下
    2015-09-09
  • springboot如何获取application.yml里值的方法

    springboot如何获取application.yml里值的方法

    这篇文章主要介绍了springboot如何获取application.yml里的值,文章围绕主题相关自资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • JAVA实现长连接(含心跳检测Demo)

    JAVA实现长连接(含心跳检测Demo)

    这篇文章主要介绍了JAVA实现长连接(含心跳检测Demo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • SpringBoot上传文件如何返回前端进度条

    SpringBoot上传文件如何返回前端进度条

    这篇文章主要介绍了SpringBoot上传文件如何返回前端进度条问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Springboot 配置线程池创建线程及配置 @Async 异步操作线程池详解

    Springboot 配置线程池创建线程及配置 @Async 异步操作线程池详解

    这篇文章主要介绍了Springboot 配置线程池创建线程及配置 @Async 异步操作线程池详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 详解如何在SpringBoot项目中使用统一返回结果

    详解如何在SpringBoot项目中使用统一返回结果

    在一个完整的项目中,如果每一个控制器的方法都返回不同的结果,那么对项目的维护和扩展都会很麻烦。因此,本文为大家准备了SpringBoot项目中使用统一返回结果的方法,需要的可以参考一下
    2022-10-10
  • java序列化与反序列化的使用方法汇总

    java序列化与反序列化的使用方法汇总

    序列化是一种对象持久化的手段,普遍应用在网络传输、RMI等场景中,这篇文章主要给大家总结介绍了关于java序列化与反序列化的使用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • Java并发编程之Semaphore详解

    Java并发编程之Semaphore详解

    这篇文章主要介绍了Java并发编程之concurrent包中的Semaphore详解,信号量Semaphore一般用来表示可用资源的个数,相当于一个计数器,可类比生活中停车场牌子上面显示的停车场剩余车位数量,需要的朋友可以参考下
    2023-12-12

最新评论