使用 properties 配置文件装配 bean 的方式

在spring中将bean 注册到spring 容器中常见的有三种方式(两类):

先说明配置文件内容:application.yml,有一段配置如下

persons:
  youtube:
    name: youtube
    age: 18
  google:
    name: google
    age: 20

第一类:将单个类注册到容器中

第一种,使用 @ConfigurationProperties + @Component,配置 GoogleUser

@Configuration   //效果等同于 @Component
@ConfigurationProperties(prefix="persons.google") // 表示使用配置文件中前缀为 persons.google 的属性的值初始化该bean定义产生的的bean实例的同名属性,例如会将name 初始化为 "google"
@Data
public class GoogleUser{
    private String name;
    private Integer age;
}

第二种,使用 @Value

@Configuration
@Data
public class GoogleUser{
    @Value("${persons.google.name}")  //将配置文件中 persons.google.name 属性值注入进来
    private String name;
    @Value("${persons.google.age}")
    private Integer age;
}

第二类,@ConfigurationProperties + @Bean注解在配置类的bean定义方法上

首先需要定义一个普通类,属性有 name、age。Person

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Person {
    private String name;
    private Integer age;
}

在配置类中将一个方法定义为一个 bean

@Configuration
public class PropertyConf {

    @Bean(name="youtubeUser")
    @ConfigurationProperties(prefix="persons.youtube")
    public Person youtubeUser() {
        return new Person();
    }

}

至此配置完成了,可以写写controller 验证一下了

@RestController
public class WelcomeController {

    @Autowired
    private GoogleUser p;

    @Autowired
    @Qualifier("youtubeUser")
    private Person youtubeUser;

    @RequestMapping(value="/hello", method=RequestMethod.GET)
    public String hello() {
        return "hello world";
    }

    @RequestMapping(value="/hi/{name}", method=RequestMethod.GET)
    public String hi(@PathVariable String name) {
        System.out.println("user name is:" + name);
        return "hi "+name;
    }

    @RequestMapping(value="/person/google", method=RequestMethod.GET)
    public Person getGoogle() {
        System.out.println(p);
        Person result = Person.builder().name(p.getName()).age(p.getAge()).build();
        return result;
    }

    @RequestMapping(value="/person/youtube", method=RequestMethod.GET)
    public Person getYoutube() {
        System.out.println(youtubeUser);
        return youtubeUser;
    }

}

使用 postman 等工具可以测一下了

 

原文地址:https://www.cnblogs.com/zhaopengcheng/p/9535641.html

时间: 2024-08-09 21:52:11

使用 properties 配置文件装配 bean 的方式的相关文章

04_IOC容器装配Bean(xml方式)

IOC容器装配Bean(xml方式) 1.Spring 提供配置Bean三种实例化方式 1)使用类构造器实例化(默认无参数) <bean id="bean1" class="cn.itcast.spring.b_instance.Bean1"></bean> 2)使用静态工厂方法实例化(简单工厂模式) //下面这段配置的含义:调用Bean2Factory的getBean2方法得到bean2 <bean id="bean2&qu

05_IOC容器装配Bean(注解方式)

IOC容器装配Bean(注解方式) 1.使用注解方式进行Bean注册 xml 方式: <bean id="" class=""> spring2.5版本 提供一组注解,完成Bean注册 * @Component 描述Spring框架中Bean 导入jar 和 xml方式开发是相同的 第一步 编写Class,在声明上 添加 @Component /** * 使用Spring2.5注解 注册Bean */ @Component("helloServ

IOC装配Bean(注解方式)(5)

Spring的注解装配Bean Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean Spring的框架中提供了与@Component注解等效的三个注解: @Repository 用于对DAO实现类进行标注 @Service 用于对Service实现类进行标注 @Controller 用于对Controller实现类进行标注 ***** 三个注解为了后续版本进行增强的. Bean的属性注入: 普通属性; @Value(value="itcast&q

Spring加载Properties配置文件的三种方式

一.通过 context:property-placeholder 标签实现配置文件加载 1) 用法: 1.在spring.xml配置文件中添加标签 <context:property-placeholder ignore-unresolvable="true" location="classpath:redis-key.properties"/> 2.在 spring.xml 中使用 配置文件属性:$ <!-- 基本属性 url.user.pas

Java 读取 .properties 配置文件的几种方式

1.基于ClassLoder读取配置文件 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便. 1 Properties properties = new Properties(); 2 // 使用ClassLoader加载properties配置文件生成对应的输入流 3 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properti

Java 读取properties 配置文件的几种方式

基于ClassLoder读取配置文件 Properties properties = new Properties(); // 使用ClassLoader加载properties配置文件生成对应的输入流 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties"); // 使用properties对象加载输入流 properties.load(

工作中遇到的问题--缓存配置(使用@Configuration装配 @Bean的方式注入)

@EnableCaching@Configurationpublic class MFGCachingConfiguration { @Autowired private MFGSettings mfgSettings; @Bean(name="MFGKeyGenerator") public KeyGenerator MFGKeyGenerator(){ SimpleKeyGenerator defaultKeyGen = new SimpleKeyGenerator(); KeyG

JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试

Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring? Spring是分层的JavaSE/EE full-stack(一站式)轻量级开源框架. 所谓分层: SUN提供的EE的三层结构:web层.业务层.数据访问层(也称持久层,集成层). Struts2是web层基于MVC设计模式框架. Hibernate是持久的一个ORM的框架. 所谓一站式:Spring框架有对三层的每层解决方案.

Spring提供的三种装配Bean方式

在Spring中,对象不需要自己查找或创建与其所关联的其他对象,Spring容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质. Spring提供了三种主要的装配Bean的方式: 隐式的bean发现和自动化装配 在Java中进行显示配置 在XML中进行显示配置 隐式的bean发现和自动化装配 Spring从两个方面来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spr