首页 > 其他分享 >【SpingBoot学习笔记】SpingBoot之读取resource/config目录下自定义properties文件(注解方式)

【SpingBoot学习笔记】SpingBoot之读取resource/config目录下自定义properties文件(注解方式)

时间:2022-10-17 15:45:49浏览次数:89  
标签:currentDbType resource SpingBoot 自定义 boot springframework import org public

之前已经写了一篇读写properties文件的文章,见《Java读取properties配置文件写法》,但如果是springboot项目,配置统一在resource/config目录下,使用注解如何读取呢,写法如下

打开IDEA,新建maven项目readproperties

项目结构

配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>readproperties</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--手动引入-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.3.RELEASE</version>
    </parent>

    <!--手动引入-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


    <!--手动引入-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin </artifactId>
            </plugin>
        </plugins>
    </build>
</project>

 

新建springboot启动类

package test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication {

    public static void main(String[] args) {
            SpringApplication.run(MySpringBootApplication.class,args);
    }
}

新建my.properties,放在resource/config目录

#MY CONFIG
#########################################
current.dbType = Oracle

创建配置类

package test.init;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;


@Configuration
@PropertySource("classpath:config/my.properties")
public class MyConfig {
    
    //获取配置中的信息
    @Value("${current.dbType}")
    private  String currentDbType;

    public String getCurrentDbType() {
        return currentDbType;
    }

    public void setCurrentDbType(String currentDbType) {
        this.currentDbType = currentDbType;
    }
}

创建测试类

package test.webservice;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import test.init.MyConfig;

@RestController
public class HelloWorldRestController {

    @Autowired
    private MyConfig myConfig;

    @RequestMapping(value = "/",method = RequestMethod.GET)
    public String hello(){
        String currentDbType=myConfig.getCurrentDbType();
        return    "current.dbType为:"+currentDbType;
    }
}

然后启动项目,在浏览器输入http://localhost:8080/,执行结果如下

 

 内容换成中文(修改为:current.dbType = Oracle数据库),果然也会乱码

 

 依照网上的解决方法,修改MyConfig类的PropertySource注解

@PropertySource(value = "classpath:config/my.properties",encoding ="UTF-8")

然后encoding报红,提示不支持,应该是当前springboot版本太低了,因此还需修改pom.xml

    <!--手动引入-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

然后重启,浏览器器上查看,已正常

 

 希望对大家有所帮助!

ps:据说使用yml文件,中文不会乱码,待验证

 

标签:currentDbType,resource,SpingBoot,自定义,boot,springframework,import,org,public
From: https://www.cnblogs.com/lingyu0702/p/16799174.html

相关文章

  • E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarl
    Ubuntu 安装软件报错问题错误信息 E:Couldnotgetlock/var/lib/dpkg/lock-frontend-open(11:Resourcetemporarlyunavailable)     解决办法: ......
  • vue实战-完全掌握Vue自定义指令
    准备:自定义指令介绍除了核心功能默认内置的指令(v-model和v-show等),Vue也允许注册自定义指令。注意,在Vue2.0中,代码复用和抽象的主要形式是组件。然而,有的情况下,你......
  • Hibernate自定义注解类
    •介绍Hibernate对PO类上支持的注解类是有限的,而且我用的这个版本的Hibernate还不支持在生成数据库表(通过hibernate.hbm2ddl.auto)时生成字段注释(comment)。本文通过扩展Ann......
  • Taro自定义Tabbar
     在项目中遇到需要自定义底部的tabbar,首先需要了解底部tabbar最少2个最多5个,项目中可能会遇到自定义时底部的tabbar总个数超过5个的情况,比如:在商家端小程序底部需要显示......
  • 【微信小程序】组件的生命周期及自定义组件
    文章目录​​组件的生命周期​​​​自定义组件的生命周期函数​​​​执行顺序​​​​组件常用的生命周期函数​​​​lifetimes节点​​​​组件所在页面的生命周期函数......
  • CSS自定义字体 竖向偏移怎么办?聊聊字体文件的字体度量、上升、下降
    背景昨天我发布了联机象棋《联机象棋发布!打开URL就能联机对战!观战!单机演练!分享残局!》,有玩家试玩,截图如下:通过截图大小以及里面的emoji我推断出:这是一台WindowsPC。之前我在......
  • 自定义异常和练习自定义异常
    自定义异常java中不同的异常类,分别表示着某一种具体的异常情况那么在开发中总是有些异常情况是SUN没有定义好的此时我们根据自己业务的异常情况来定义异常类例如年龄......
  • Docker | 自定义网络(网关、子网地址)
    了解dockernetwork通过下面的命令来获取帮助dockernetwork--helpCommands:connectConnectacontainertoanetworkcreateCreateanetwork......
  • 四、WinUI3下TitleBar的自定义
    WinUI3下TitleBar的自定义对于Windows软件开发者来说重写标题栏样式是一个很重要的事情,在WPF阶段很多人写出来性能很差的窗口,而且为了适配Win11系统的Snaplayout后性能就......
  • maven resource 覆盖配置使用
    mavenresource插件可以对于resource进行处理,比如合并,copy,有一种比较常见的用法是进行覆盖比如我们基于配置插件,在resource阶段将依赖其他配置中心或者repo的配置文件......