spring中使用@Value注解获取properties配置文件中的变量值 您所在的位置:网站首页 @Scheduled注解中的值从yml配置文件中读取 spring中使用@Value注解获取properties配置文件中的变量值

spring中使用@Value注解获取properties配置文件中的变量值

2024-07-12 05:14| 来源: 网络整理| 查看: 265

在我们项目中往往会使用到properties配置文件来定义一些跟系统环境有关的配置,因此今天我们学习使用spring中的@Value注解来快速方便地将我们配置文件中的变量值赋值给java类的属性值。

1.首先我们先在项目中建一个properties配置文件,然后定义好我们需要的变量名和对应的值

2.然后我们需要在spring-mybatis.xml配置文件中将这个配置文件添加到spring项目中,代码:

3.我们需要一个Java类来申明我们需要的Java变量,在变量的前面标注注解@Value("${xxx}"),xxx就是配置文件中的变量名称,该注解只能使用在类属性值上面,代码:

package com.ssm.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** * Created by viking on 2018/09/01 * 系统常量配置类 */ @Component public class SystemConfig { @Value("${value.name}") public String sys_name; @Value("${value.value}") public String sys_value; @Value("${value.type}") public String sys_type; }

4.现在看似我们的操作就做完了,其实不然,我们还需要一个重要的步骤,我们需要将我们的Java类注入到spring容器中,这样@Value注解才能生效,毕竟是spring的注解嘛,这些操作只有让它自己来做才行的。在spring-mybatis.xml中注入Java类的实例,我使用的是@Component注解加包扫描的方式,当然你也可以直接配置一个bean在xml文件中,效果都一样,代码:

5.该做的操作都做完了,下面开始测试阶段,让我们看看这个靠不靠谱吧!编写一个测试类,代码:

package com.ssm.controller; import com.ssm.config.SystemConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; /** * Created by viking on 2018/09/01 * 测试Controller */ @RestController @RequestMapping("test") public class TestController { @Autowired private SystemConfig systemConfig; @RequestMapping("value") public Object testValue(){ Map map = new HashMap(); map.put("sys_name",systemConfig.sys_name); map.put("sys_value",systemConfig.sys_value); map.put("sys_type",systemConfig.sys_type); return map; } }

运行效果:

这样就实现了在spring中使用@Value注解直接获取properties文件中的变量值。

但是,这里还有一个问题,如果我在配置文件中配置了中文汉字,会发生什么情况呢?如图:

运行结果:

出现乱码了,这个问题怎么解决呢?很简单,在向spring中引入properties配置文件是加上这个:

把UTF-8换成你自己项目中使用的编码方式即可。

运行结果:

这样就能解决中文乱码问题了,若文章存在不足之处欢迎大神指正,转载请注明出处。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有