[Spring] - Property注入

使用Spring注入Properies文件方法:

1、src中新建一个settings.properties文件,内容如下:

db_driverClassName=com.mysql.jdbc.Driver
db_url=jdbc:mysql://127.0.0.1/test
db_username=root
db_password=root

test_userName=Robin
test_age=18

2、在spring的applicationContext.xml中加入这段:

    <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath*:settings.properties</value>
            </list>
        </property>
    </bean>
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreResourceNotFound" value="false" />
        <property name="properties" ref="configProperties" />
    </bean>

之后的spring的xml配置中可以直接这样使用了:

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${db_driverClassName}"/>
        <property name="url" value="${db_url}" />
        <property name="username" value="${db_username}" />
        <property name="password" value="${db_password}" />
    </bean>

3、新建一个class:Settings.java

package com.my.common;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Settings {
    private static Settings instance;
    public static Settings getInstance() {
        return instance;
    }
    public Settings() {
        instance = this;
    }

    @Value("#{configProperties[‘test_userName‘]}")
    private String userName;
    @Value("#{configProperties[‘test_age‘]}")
    private int age;

    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

然后可以在代码中这样调用了:

Settings.getInstance().getUserName()
时间: 2024-11-13 09:56:02

[Spring] - Property注入的相关文章

Spring学习(二)spring ioc注入的三种方式

一.spring ioc注入有哪三种方式: a setter 原理 : 在目标对象中,定义需要注入的依赖对象对应的属性和setter方法:"让ioc容器调用该setter方法",将ioc容器实例化的依赖对象通过setter注入给目标对象,封装在目标对象的属性中. b 构造器 原理 : 为目标对象提供一个构造方法,在构造方法中添加一个依赖对象对应的参数.ioc容器解析时,实例化目标对象时会自动调用构造方法,ioc只需要为构造器中的参数进行赋值:将ioc实例化的依赖对象作为构造器的参数传入

SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. Spring依赖注入(

java框架篇---spring 依赖注入

spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class User { private String username; private String password; public User(){} public User(String username, String password) { super(); this.username = use

Spring 引用注入setter

注入引用类型:对象 必须保障该对象以Bean形式存在于IoC容器,受Spring控制 1.      提供对应要注入的属性 public class Bean2User { public void Test() { System.out.println("bean2 use obj ..."); } } 2.      为每个要注入的属性提供对应的标准封装setter方法 //setter注入 public class Bean2 { private String name; priv

Spring学习笔记——Spring依赖注入原理分析

我们知道Spring的依赖注入有四种方式,分别是get/set方法注入.构造器注入.静态工厂方法注入.实例工厂方法注入 下面我们先分析下这几种注入方式 1.get/set方法注入 public class SpringAction { //注入对象springDao private SpringDao springDao; //一定要写被注入对象的set方法 public void setSpringDao(SpringDao springDao) { this.springDao = spri

Spring依赖注入 --- 简单使用说明

Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣的同学可以参考我的日志:http://www.cnblogs.com/kodoyang/p/Frame_Imitate_Spring.html 我们会用spring提供的ClassPathXmlApplicationContext实现来代替这篇日志中相应的实现 为导入的jar文件配置api 对应的L

Spring属性注入的方式

Spring的属性注入主要有三种: 1.setter方式注入 2.构造方法注入 3.注解注入,注解注入又分为: ①java annotation ②spring annitation 其中第三种中的java annotation是我们推荐使用的方法. 下面就来一一介绍这些注入方式的使用方法: setter方式注入步骤: ①首先在拥有属性的类中建立属性的set方法. ②在配置文件中使用property标签来注入. 构造方法方式注入步骤: ①创建属性所在的类创建构造方法,同时必须把默认的空构造方法也

Spring的注入问题

作下笔记,Spring的注入问题[多个实例问题] 解决方案如下: 1 package student.life.support.platform.service.impl; 2 3 import javax.annotation.Resource; 4 5 import org.springframework.stereotype.Service; 6 7 import student.life.support.platform.dao.BaseDao; 8 import student.lif

Spring 中注入 properties 中的值

1 <bean id="ckcPlaceholderProperties" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> 2 <property name="locations"> 3 <list> 4 <value>classpath:default.properties<