Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要从java类调用Spring服务,如何从java类为Spring应用程序设置活动概要文件_Java_Spring_Spring Mvc - Fatal编程技术网

我需要从java类调用Spring服务,如何从java类为Spring应用程序设置活动概要文件

我需要从java类调用Spring服务,如何从java类为Spring应用程序设置活动概要文件,java,spring,spring-mvc,Java,Spring,Spring Mvc,*我需要从java类中调用spring服务,如何为spring服务动态设置活动概要文件。 这是密码 java code public void abc() { AccountDetailService service = new AccountDetailService(); service.getAccountDetails(); } AccountDetailService @Profile @Log @Component private void getAccountDetails() {

*我需要从java类中调用spring服务,如何为spring服务动态设置活动概要文件。 这是密码

java code
public void abc() {
AccountDetailService service = new AccountDetailService();
service.getAccountDetails();
}
AccountDetailService
@Profile
@Log
@Component
private void getAccountDetails() {

      String filename=environment.getProperty("fileName");
      accountDaoImpl.getDetails(filename);
}
我有不同的配置文件,如dev、qa和prod
调用spring服务时,如何从java类传递活动概要文件。*

您不需要向服务传递任何概要文件。简单地说,为不同的配置文件创建配置。这些配置将为给定配置文件提供正确的服务实例。这里有这样一个配置类的示例:

@Configuration
@Profile(value = "test")
public class ServiceTestConfig
{
    @Bean 
    public Service service()
    {
        return new TestService();
    }
}
使用其他
@Profile
注释创建另一个配置,Spring将自动创建适当的实例。您可以通过多种方式设置活动配置文件,最简单的方法是更改
应用程序.properties中的
spring.profiles.active
属性。有关配置文件的更多信息,请参阅Spring文档:

更新


如果您确实需要在运行时将活动配置文件传递给服务,则可以插入
环境
实例并调用
getActiveProfiles()
。请参阅javadoc:。请记住,这不是Spring中使用概要文件的方式。我之前提供的示例被认为是最佳实践。

您不需要向服务传递任何配置文件。简单地说,为不同的配置文件创建配置。这些配置将为给定配置文件提供正确的服务实例。这里有这样一个配置类的示例:

@Configuration
@Profile(value = "test")
public class ServiceTestConfig
{
    @Bean 
    public Service service()
    {
        return new TestService();
    }
}
使用其他
@Profile
注释创建另一个配置,Spring将自动创建适当的实例。您可以通过多种方式设置活动配置文件,最简单的方法是更改
应用程序.properties中的
spring.profiles.active
属性。有关配置文件的更多信息,请参阅Spring文档:

更新


如果您确实需要在运行时将活动配置文件传递给服务,则可以插入
环境
实例并调用
getActiveProfiles()
。请参阅javadoc:。请记住,这不是Spring中使用概要文件的方式。我之前提供的示例被认为是最佳实践。

配置文件是在spring启动时设置的。即使您可以/可以在运行时更改它们,这也是一个糟糕的想法。此外,如果您使用
new AccountDetailService()
实例化一个类,它不是Spring上下文的一部分(无论您在类上有什么注释)。配置文件是在Spring启动时设置的。即使您可以/可以在运行时更改它们,这也是一个糟糕的想法。此外,如果您使用
new AccountDetailService()
实例化一个类,它不是Spring上下文的一部分(无论您在该类上有什么注释)。我需要从我的java类中动态传递@Profile的value=test,如果您真的必须这样做,您可以使用
Environment
object来获取活动的概要文件。然而,配置文件并不是这样使用的。我最初的回答显示了“最佳实践”。无论如何,我会更新我的答案。我需要通过java classWell中的@Profile's value=test动态测试,如果你真的必须这样做的话——你可以使用
Environment
对象来获取活动的概要文件。然而,配置文件并不是这样使用的。我最初的回答显示了“最佳实践”。无论如何,我会更新我的答案。