一个实用的注解,用来加载properties文件中的值到controller中 @Value

2024-06-22 11:48

本文主要是介绍一个实用的注解,用来加载properties文件中的值到controller中 @Value,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

spring容器中properties文件的注入

<util:properties id="xxx" location="classpath:xxx.properties"></util:properties>

1、properties文件中:

username=root

Java类中为属性赋值方式:@Value("xxx.username")

domain.url.name=https://www.baidu.com

Java类中为属性赋值方式:@Value("xxx['domain.url.name']")

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

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

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

 

  <!--测试@Value注解的配置文件--><context:property-placeholder location="classpath:config/value.properties" ignore-unresolvable="true"/>


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文件中,效果都一样,代码:

   

 <!--spring扫描注入bean--><context:component-scan base-package="com.ssm.config"/>


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 {@Autowiredprivate SystemConfig systemConfig;@RequestMapping("value")public Object testValue(){Map<String,String> map = new HashMap<String, String>();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配置文件是加上这个:

<!--测试@Value注解的配置文件-->
<context:property-placeholder location="classpath:config/value.properties" file-encoding="UTF-8" ignore-unresolvable="true"/>


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

运行结果:

这篇关于一个实用的注解,用来加载properties文件中的值到controller中 @Value的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084205

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

SpringCloud中的@FeignClient注解使用详解

《SpringCloud中的@FeignClient注解使用详解》在SpringCloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解来标记Feign客户端接口,这篇文章... 在Spring Cloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解