Java 来自控制台的Spring属性值

Java 来自控制台的Spring属性值,java,spring,Java,Spring,我正在开发一个spring应用程序,需要在运行时提供属性值 XML: <bean id="circle" class="test.hhh.org.Circle"> <property name="radius" value="NEED DYNAMIC VALUE HERE"/> </bean> num应该是半径的值。如何在Spring中配置此值?有什么方法可以做到这一点吗?对于Spring应用程序,我建议使用配置文件或环境变量 Java中的环境变量读

我正在开发一个spring应用程序,需要在运行时提供属性值

XML:

<bean id="circle" class="test.hhh.org.Circle">
    <property name="radius" value="NEED DYNAMIC VALUE HERE"/>
</bean>

num
应该是半径的值。如何在Spring中配置此值?有什么方法可以做到这一点吗?

对于Spring应用程序,我建议使用配置文件或环境变量

Java中的环境变量读取:

System.getenv("RADIUS")
在spring中读取属性文件:

@Configuration
@PropertySource("classpath:foo.properties")
public class PropertiesWithJavaConfig {

@Value( "${radius.value}" )
private int radius;

 @Bean
 public static PropertySourcesPlaceholderConfigurer
   propertySourcesPlaceholderConfigurer() {
   return new PropertySourcesPlaceholderConfigurer();
  }
}
foo.properties文件应位于资源目录下

./src/main/java/resources/foo.properties
它的内容应该是:

radius.value=11

谢谢你的回答。但值11仍然是静态的,对吗?我们如何在运行时分配值?任何值?那么您的问题是,是否要接受用户输入?还是某种形式的动态设置?1.您可以使用属性文件增强第二个版本,以便对该文件进行定期检查,这样您就可以动态更改它。2.或者使用带有Spring的控制器来接受用户输入,但这当然是Http级别的。如果您只想从控制台阅读,我不确定spring是否支持这一点。如果您想从命令行获得用户输入,我不认为使用Spring有什么意义。
radius.value=11