【spring boot】3.spring boot项目,绑定资源文件为bean并使用

整个例子的结构目录如下:

 

1.自定义一个资源文件

com.sxd.name = 申九日木
com.sxd.secret = ${random.value}
com.sxd.intValue = ${random.int}
com.sxd.uuid = ${random.uuid}
com.sxd.age= ${random.int(100)}

com.sxd.resume = 简历:①姓名:${com.sxd.name}   ②年龄:${com.sxd.age}

 

2.将资源文件中的属性绑定到一个bean上

package com.sxd.beans;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * User实体
 * @Component 声明User实体为一个bean
 * @PropertySource 声明对应绑定了test.properties文件 【应对ConfigurationProperties注解取消掉location的属性】
 * @ConfigurationProperties 对应绑定前缀为com.sxd的属性名
 */
@Component
@PropertySource(value = "classpath:/test.properties")
@ConfigurationProperties(prefix = "com.sxd")
public class User {
    private String name;
    private Integer age;

    //资源文件中定义的是com.sxd.uuid而不是uu,这里的uu字段只是测试如果名称不对应,是否会赋值成功
    private String uu;
    private String resume;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getUu() {
        return uu;
    }

    public void setUu(String uu) {
        this.uu = uu;
    }

    public String getResume() {
        return resume;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }
}

View Code

 

 

3.spring boot的主入口

package com.sxd.secondemo;

import com.sxd.beans.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * spring boot 的主入口类
 * @RestController = @ResponseBody + @Controller
 * @SpringBootApplication  spring boot的核心注解
 * @EnableConfigurationProperties 激活绑定资源文件的Bean,例如这里的User.class或者更多
 */
@RestController
@SpringBootApplication
@EnableConfigurationProperties(User.class)
public class SecondemoApplication {

    /**
     * @Autowired  自动注入,需要@EnableConfigurationProperties中声明已经激活的Bean才能自动注入成功
     */
    @Autowired
    User user;

    /**
     * 请求地址为localhost:8080/即可访问到本方法
     * @return
     */
    @RequestMapping("/")
    public String hello(){
        /**
         * idea中 System.out.println()快捷方式为sout,然后Alt+Enter才能出来
         */
        System.out.println(user.getResume());

        return "打印简历:"+user.getResume()+"\n"+"uu是否有值:"+user.getUu();
    }

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

View Code

 

 

4.运行结果:

 

时间: 2024-07-29 14:28:18

【spring boot】3.spring boot项目,绑定资源文件为bean并使用的相关文章

gradle web项目的资源文件

问题描述 gradle web项目的资源文件 我的main目录下有两个资源文件目录: resources 开发时用的资源文件 productionResources 发布时用的资源文件 开发的时候我用cargoRunLocal来启动,这个任务依赖war任务,而打包也用war,所以 我不知道怎么做到开发时复制的是resources的文件,而发布时复制的是productionResources 下的文件.

【spring Boot】spring boot获取资源文件的三种方式【两种情况下】

首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取   带着这个想法去看下面几种方式 =============================================================================================== 1>从spring boot默认的application.properties资

【spring Boot】spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案

前言 =========================================== 初步接触Spring Boot =========================================== 资源文件中自定义属性值,配置在一个对象bean上,然后在程序中可以使用bean的属性值.  一.     二. @Component标志本类为一个bean @PropertySource(value = "classpath:/application.properties")

在VB项目中使用资源文件

项目 很多VB项目使用的数据存储在扩展文件中,包括bmp图片,icons图标,指针和wav文件.在你的安装中这些元素作为分开的单独文件有两个缺点. 首先,它可能在大量的文件中混乱安装:但是,如果一个用户删除或者不经意的移动文件中的任何内容,程序就不会正常运行.第二,文件中的材料对于用户来说使用是非常自由的,有可能用户所使用的方法是你不希望的. 你可以使用资源文件来避免上面的这些问题.使用资源文件的另外一个好处就是你可以创造特别版本的资源文件包括在不同的地方安装. 一个VB项目仅仅只有一个和它相关

用NAnt编译带有资源文件(*.resx,*.bmp,*.gif等)的C#项目

情况一:如何编译支持多语言切换的项目 <!-- 转换资源文件的格式(编译资源文件的必要步骤) --> <resgen input="ResourceText.resx" output="${nant.project.name}.ResourceText.resources" todir="${build.dir}\bin" /> <resgen input="ResourceText.zh-CHS.resx

从资源文件里加载文件(C#)

加载 1.概述: 资源文件很早就有了,在.Net时代里这个东西也不算稀奇,在进行多国语言化的时候通常把不同翻译的文字存放到资源包里.以前资源文件除了放字符串以外,还可以放文件.不过在C#的工程里面,资源管理面板是空的(vc++工程里资源面板可以使用),无法直接编辑资源属性,不过每个WinForm都会带一个.resx的文件,这个文件就是WinForm的资源文件.如果通过添加新项目的方法,给工程里添加资源文件的话,产生的也是.resx文件.估计.resx文件是.net给c#新设计的资源文件格式..r

使用JWT保护你的Spring Boot应用 - Spring Security实战

作者 freewolf 原创文章转载请标明出处 关键词 Spring Boot.OAuth 2.0.JWT.Spring Security.SSO.UAA 写在前面 最近安静下来,重新学习一些东西,最近一年几乎没写过代码.整天疲于奔命的日子终于结束了.坐下来,弄杯咖啡,思考一些问题,挺好.这几天有人问我Spring Boot结合Spring Security实现OAuth认证的问题,写了个Demo,顺便分享下.Spring 2之后就没再用过Java,主要是xml太麻烦,就投入了Node.js的怀

Spring Boot 整合 Spring Data Jpa

配置spring data jpa 及 整合 druid数据库连接池 添加数据库驱动依赖和spring data jpa 依赖 我们使用的是mysql数据库,还需要添加的数据库驱动依赖是mysql-connector-java <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc

使用Spring Session实现Spring Boot水平扩展

本文使用Spring Session实现了Spring Boot水平扩展,每个Spring Boot应用与其他水平扩展的Spring Boot一样,都能处理用户请求.如果宕机,Nginx会将请求反向代理到其他运行的Spring Boot应用上,如果系统需要增加吞吐量,只需要再启动更多的Spring Boot应用即可. Spring Boot应用通常会部署在多个Web服务器上同时提供服务,这样做有很多好处: 单个应用宕机不会停止服务,升级应用可以逐个升级而不必停止服务. 提高了应用整体的吞吐量.