二、Spring配置文件读取

  在开发是时候我们使用Spring,主要是他为我们的开发提供很多便捷的方式,控制反转,依赖注入和面向切面编程是Spring的三大核心思想,配置文件读取也可以说是一种依赖注入,只不过这个是从配置文件中依赖注入进来的,那如何见配置文件中数据注入到bean 中呢?

(java学习交流③群:256909960,欢迎加入)

一、通过@Vaule来配置

  这种配置的是通过Spring将配置文件加载后,在属性上使用@Value注解将对应的值注入进来

1、pom文件

  需要的依赖

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
<version>1.1</version>
</dependency>

(java学习交流③群:256909960,欢迎加入)

2、配置类

  在这里就直接用Spring注解进行配置了,xml配置方式后续在写

@Component    //1
@PropertySource("classpath:aaa.properties")//2
public class ValueProperties {
    @Value("${name}")//3
    private String name;
    @Value("${age}")//4
    private Integer age;
    public void hello(){
        System.out.println("my name : "+name+"| age: "+age);
    }
}

1、@component 让Spring能够扫描到这个包

2、@PropertiesSource 读取加载classpath下的配置文件(只能是properties)

3、注入配置文件中的数据name 和age,

例如配置文件中的数据是这样的host.ip,那么注入时应该这样写${host.ip}

(java学习交流③群:256909960,欢迎加入)

3、调用测试

  

@ComponentScan//1
public class AppConfiguration {

    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfiguration.class);
        applicationContext.getBean(ValueProperties.class).hello();
    }

1、扫描包,这个类要在上面ValueProperties类的同级或更上层的包中

(java学习交流③群:256909960,欢迎加入)

二、通过@ConfigurationProperties来配置

  这个是Springboot中的注解

1、pom文件

  

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

(java学习交流③群:256909960,欢迎加入)

2、配置类

  

@Component//1
@ConfigurationProperties(prefix = "server.irich")//2 //这里不可以用@PropertySource加载配置文件
public class BootConfiguration {
    private String name;
    private Integer age;
    public void hello(){
        System.out.println("my name : "+name+"| age: "+age);
    }
    public String getName() {
        return name;
    } public void setName(String name) {
        this.name = name;
    } public Integer getAge() {
        return age;
    }

配置文件

server.irich.name=张国荣
server.irich.name=45

配置文件

1、向容器中加入这个bean

2、加载配置文件中,prefix是只加载文件中指定前缀的数据

一定要有setter方法

注:1.5以后@ConfigurationProperties没有了locations这个功能,但他可以和@PropertySource、@Import组合使用

(java学习交流③群:256909960,欢迎加入)

3、调用测试

  

@ComponentScan //1
@EnableConfigurationProperties //2
@PropertySource("classpath:aaa.properties") //3
//@SpringBootApplication
public class BootConfigurationApp {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BootConfigurationApp.class);
        applicationContext.getBean(BootConfiguration.class).hello();
// SpringApplication.run(BootConfigurationApp.class,args);
    }
}

1、配置扫描包

2、当@EnableConfigurationProperties注解应用到你的@Configuration时,任何被@ConfigurationProperties注解的beans将自动被Environment属性配置

3、在@ConfigurationProperties为属性赋值前加载配置文件,不可以将需要加在的配置文件写在和@ConfigurationProperties相同的位置

(java学习交流③群:256909960,欢迎加入)

时间: 2024-10-01 14:21:01

二、Spring配置文件读取的相关文章

【Spring源码分析】配置文件读取流程

前言 Spring配置文件读取流程本来是和http://www.cnblogs.com/xrq730/p/6285358.html一文放在一起的,这两天在看Spring自定义标签的时候,感觉对Spring配置文件读取流程还是研究得不够,因此将Spring配置文件读取流程部分从之前的文章拆出来单独成为一文. 为了看一下Spring配置文件加载流程,先定义一个bean.xml: 1 <?xml version="1.0" encoding="UTF-8"?>

[spring源码学习]二、IOC源码——配置文件读取

一.环境准备 对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子: package com.zjl; public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void sayHello

读取spring配置文件的方法(spring读取资源文件)

1.spring配置文件 <bean id="configproperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:jdbc.properties"/> </bean> 2.读取属性方法 Appli

java Spring使用配置文件读取jdbc.properties

Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer"     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">      <property name="location" value="

Spring Boot的properties配置文件读取

我在自己写点东西玩的时候需要读配置文件,又不想引包,于是打算扣点Spring Boot读取配置文件的代码出来,当然只是读配置文件没必要这么麻烦,不过反正闲着也是闲着,扣着玩了.具体启动过程以前的博客写过Spring Boot启动过程(一),这次入口在SpringApplication类中: private ConfigurableEnvironment prepareEnvironment( SpringApplicationRunListeners listeners, Application

Spring Junit 读取WEB-INF下的配置文件

假设Spring配置文件为applicationContext.xml 一.Spring配置文件在类路径下面 在Spring的java应用程序中,一般我们的Spring的配置文件都是放在放在类路径下面(也即编译后会进入到classes目录下). 以下是我的项目,因为是用maven管理的,所以配置文件都放在“src/main/resources”目录下 这时候,在代码中可以通过 [java] view plaincopy ApplicationContext applicationContext 

【SSM整合】spring配置文件中读取配置文件的三种方式

目录 依赖 jdbc.properties applicationContext.xml(spring配置文件) 依赖 <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <

XML配置文件的命名空间与Spring配置文件中的头

一直以来,写Spring配置文件,都是把其他配置文件的头拷贝过来,最多改改版本号,也不清楚哪些是需要的,到底是干嘛的.今天整理一下,拒绝再无脑copy. 一.Spring配置文件常见的配置头 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/

Spring配置文件外部化配置及.properties的通用方法

摘要:本文深入探讨了配置化文件(即.properties)的普遍应用方式.包括了Spring.一般的.远程的三种使用方案. 关键词:.properties, Spring, Disconf, Java 解决问题:如何正确使用.properties配置文件. 若是有其他代码需要此Spring属性配置,将Spring配置中的属性值设置迁移到外部的属性文件中,是必需的操作,这也可以使Spring配置文件更易读.在这里我们不仅要讨论Spring的外部化配置,还要深入探讨配置化文件(即.propertie