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

简介: 整个例子的结构目录如下: 1.自定义一个资源文件com.sxd.name = 申九日木com.sxd.secret = ${random.value}com.sxd.intValue = ${random.

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

 

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.运行结果:

 

相关文章
|
3天前
|
缓存 安全 Java
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
|
3天前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
42 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
3天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
30天前
|
Java 微服务 Spring
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
文章介绍了如何利用Spring Cloud Alibaba快速构建大型电商系统的分布式微服务,包括服务限流降级等主要功能的实现,并通过注解和配置简化了Spring Cloud应用的接入和搭建过程。
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
|
26天前
|
Java Spring
|
27天前
|
前端开发 Java 开发者
|
Java 测试技术 Spring
Springboot 系列(二)Spring Boot 配置文件
Springboot 系列(二)Spring Boot 配置文件
185 0
Springboot 系列(二)Spring Boot 配置文件
|
2天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的旅游景区管理系统
基于Java+Springboot+Vue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅游景区管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
14 4
基于Java+Springboot+Vue开发的旅游景区管理系统
|
2天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育用品商城管理系统
基于Java+Springboot+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育用品商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
12 2
基于Java+Springboot+Vue开发的体育用品商城管理系统
|
2天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育场馆预约管理系统
基于Java+Springboot+Vue开发的体育场馆预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育场馆管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
11 2
基于Java+Springboot+Vue开发的体育场馆预约管理系统