给BEAN运行时注入值placeholder、@Value

一、用placeholder给bean运行时注入值的步骤

Spring取得placeholder的值是用${...}

1.声明placeholder bean

(1)java方式

In order to use placeholder values, you must configure either a PropertyPlaceholder-
Configurer bean or a PropertySourcesPlaceholderConfigurer bean. Starting with
Spring 3.1, PropertySourcesPlaceholderConfigurer is preferred because it resolves
placeholders against the Spring Environment and its set of property sources.
The following @Bean method configures PropertySourcesPlaceholderConfigurer
in Java configuration:
@Bean
public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
  return new PropertySourcesPlaceholderConfigurer();
}

(2)xml方式

<?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:c="http://www.springframework.org/schema/c"
  xmlns:context="http://www.springframework.org/schema/context"
  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-4.0.xsd">

  <context:property-placeholder
    location="com/soundsystem/app.properties" />

  <bean class="com.soundsystem.BlankDisc"
    c:_0 = "${disc.title}"
    c:_1 = "${disc.artist}"/>

</beans>

2.注入

1.在java文件中用 @Value

如构造函数

public BlankDisc(
@Value("${disc.title}") String title,
@Value("${disc.artist}") String artist) {
    this.title = title;
    this.artist = artist;
}
<bean id="sgtPeppers" class="soundsystem.BlankDisc" c:_title="${disc.title}" c:_artist="${disc.artist}" />

posted on 2018-06-09 17:49  腾飞的鹰  阅读(405)  评论(0)    收藏  举报

导航