How to inject value into bean pr

2015-08-20  本文已影响33人  lovePython

In Spring, there are three ways to inject value into bean properties.

See a simple Java class, which contains two properties – name and type. Later you will use Spring to inject value into the bean properties.

package com.mkyong.common;
public class FileNameGenerator { 
    private String name; 
    private String type; 
    public String getName() { 
        return name; 
    } 
    public void setName(String name) { 
        this.name = name; 
    } 
    public String getType() { 
        return type; 
    } 
    public void setType(String type) {  
        this.type = type; 
    }
}

1. Normal way

Inject value within a ‘value’ tag and enclosed with ‘property’ tag.

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="FileNameGenerator" class="com.mkyong.common.FileNameGenerator">
        <property name="name">
            <value>mkyong</value>
        </property>
        <property name="type">
            <value>txt</value>
        </property>
    </bean>
</beans>

2. Shortcut

Inject value with “value” attribute.

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="FileNameGenerator" class="com.mkyong.common.FileNameGenerator">
        <property name="name" value="mkyong" />
        <property name="type" value="txt" />
    </bean>
</beans>

3. “p” schema

Inject value by using “p” schema as an attributes.

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="FileNameGenerator" class="com.mkyong.common.FileNameGenerator" p:name="mkyong" p:type="txt" />
</beans>

Remember declares the xmlns:p=”http://www.springframework.org/schema/p in the Spring XML bean configuration file.

Conclusion

Which methods to use is totally base on personal preference, it will not affect the value inject into the bean properties.

上一篇 下一篇

猜你喜欢

热点阅读