spring:使用<prop>标签为Java持久属性集注入值

spring:使用<prop>标签为Java持久属性集注入值

使用 spring 提供的<prop>为Java持久属性集注入值,也就是向 java.util.Properties 对象中注入值。

<props> 是简化了的 <map> ,该元素对应配置类型为 java.util.Properties 的对象依赖。

因为Properties 只能指定 String 类型的键和值,所以 <props> 的配置简化很多,只有固定的格式。

1.创建 TestUtil 类,并添加一个 Properties 类型的属性,然后添加 getter 和 setter 方法。代码如下:

package com.importnew;

import java.util.Properties;

public class TestUtil {
    private Properties prop;

    public Properties getProp() {
        return prop;
    }
    public void setProp(Properties prop) {
        this.prop = prop;
    }

}

2.编写 spring 配置文件,对 TestUtil 进行配置,并对 Properties 属性赋值。代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">

     <bean id="testUtil" class="com.importnew.TestUtil"  >
         <property name="prop">
             <props>
                 <prop key="driver">com.mysql.jdbc.Driver</prop>
                 <prop key="url">jdbc:mysql://localhost:3306/test</prop>
                 <prop key="username">root</prop>
                 <prop key="password">root</prop>
             </props>
         </property>
     </bean>
</beans>

3.编写测试类 TestSpring,代码如下:

package test;

import java.util.Properties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.importnew.TestUtil;

public class TestSpring {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        TestUtil testUtil = (TestUtil) context.getBean("testUtil");
        Properties prop = testUtil.getProp();
        String driver = prop.getProperty("driver");
        String url = prop.getProperty("url");
        String username = prop.getProperty("username");
        String password = prop.getProperty("password");
        System.out.println("driver = "+ driver +"。url = " + url +"。username = "
                +username+"。password = " + password+"。");
    }
}

———————————————————————————————————————————————————

备注:<props>元素。每个 <props> 可以嵌套多个 <prop> , <prop> 内部没有任何元素可以使用,只能是字符串,这是由 java.util.Properties 的语义决定的。

////end

时间: 2024-10-29 19:08:05

spring:使用<prop>标签为Java持久属性集注入值的相关文章

Spring系列【09】使用&lt;prop&gt;标签为Java持久属性集注入值

TestUtil.java 1 package com.lh.util; 2 3 import java.util.Properties; 4 5 public class TestUtil { 6 private Properties prop; 7 8 public Properties getProp() { 9 return prop; 10 } 11 12 @Override 13 public String toString() { 14 return "TestUtil [prop

【Java基础】Java中的持久属性集Properties

Properties 类的介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串.一个属性列表可包含另一个属性列表作为它的“默认值”:如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表.因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项.相反,

Java之属性集(Properties类)

Properties概述 java.util.Properties类 继承于 Hashtable ,来表示一个持久的属性集.它使用键值结构存储数据,每个键及其对应值都是一个字符串.该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个 Properties对象Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.Properties集合是一个唯一和IO流相结合的集合.可以使用Properties集合中的

Spring(3.2.3) - Beans(5): 集合属性的注入

如果 Bean 的属性是个集合,则可以使用 <list/>.<set/>.<map/> 和 <props/> 元素向 List.Set.Map 和 Properties 类型的属性注入值. 注入集合值的配置示例: <bean id="moreComplexObject" class="example.ComplexObject"> <!-- results in a setAdminEmails(ja

Spring Security http标签的use-expressions=&quot;true&quot;属性

如果声明为true,那么在access属性要用hasRole()这样写: <intercept-url pattern="/secure/extreme/**" access="hasRole('ROLE_SUPERVISOR')"/> 如果声明为false(默认),那么access直接就是 <intercept-url pattern="/secure/extreme/**" access="ROLE_USER&qu

关于java中属性变量默认值的问题。

主要分为两种 1.全局变量 char '/u0000' byte 0 short 0 int 0 long 0L float 0.0f double 0.0d boolean false 以上8种基本数据类型的默认值. 引用数据类型的默认值为null. 举例如下: 在平常的jdbc访问数据库的过程中,如果通过实体对象映射数据映射操作数据库,由于一些错误原因,其中实体对象中有引用数据类型的变量时没有给其赋值, 默认就是null,如果有null值参与数据库的操作,那么访问的过程中就会报SQL语句异常

Spring IOC源码详解之容器依赖注入

Spring IOC源码详解之容器依赖注入 上一篇博客中介绍了IOC容器的初始化,通过源码分析大致了解了IOC容器初始化的一些知识,先简单回顾下上篇的内容 载入bean定义文件的过程,这个过程是通过BeanDefinitionReader来完成的,其中通过 loadBeanDefinition()来对定义文件进行解析和根据Spring定义的bean规则进行处理 - 事实上和Spring定义的bean规则相关的处理是在BeanDefinitionParserDelegate中完成的,完成这个处理需

Spring中&lt;bean&gt;标签之使用p标签配置bean的属性

在spring的bean配置文件中我们常可以见到下面的例子: <bean id="user" class="com.sys.User" p:name-ref="name" /> 其中,p:name-ref="name"使用了p标签来配置bean的name的引用. 在使用p标签配置bean的属性时,我们先要声明p标签的命名空间xmlns:p="http://www.springframework.org/s

Spring &lt;context:component-scan&gt;标签属性 use-default-filters 以及子标签 include-filter使用说明

Spring <context:component-scan>标签作用有很多,最基本就是 开启包扫描,可以使用@Component.@Service.@Component等注解: 今天要作为发现,记录该标签的属性 use-default-filters 以及子标签 include-filter使用方式 : use-default-filters 默认true,默认会扫描@Component.@Controller.@Service.@Repository注解,因为这些注解都可以说是@Compo