Условно выставить работу веб-сервиса Spring - PullRequest
0 голосов
/ 02 июля 2018

Мы используем веб-сервисы Spring в нашем приложении, и у нас есть требование сделать новую операцию, предназначенную для внутреннего тестирования, доступную только в наших средах разработки и тестирования. Я знаю, как справиться с таким требованием в Axis (у нас есть один такой модуль, где мы просто добавляем или удаляем операцию из параметра "allowMethods" в нашем wsdd), но я не знаю, как это сделать в Spring, и пока У меня была большая удача в поиске в Интернете. Какие у нас варианты?

1 Ответ

0 голосов
/ 02 июля 2018

Весенние профили вам помогут:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

@Configuration
@Profile("dev")
public class ProductionConfiguration {

    // ...

}

Вы можете использовать профили на Бобе:

@Component
@Profile("dev")
public class DevDatasourceConfig

Или в XML:

<beans profile="dev">
    <bean id="devDatasourceConfig"
      class="org.baeldung.profiles.DevDatasourceConfig" />
</beans>

Вы также можете указать, какие профили используются WebApplicationInitializer:

@Configuration
public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.setInitParameter("spring.profiles.active", "dev");
    }
} 

или

@Autowired
private ConfigurableEnvironment env;
...
env.setActiveProfiles("dev");

или web.xml:

<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</context-param>

или параметр JVM:

-Dspring.profiles.active=dev

или переменная окружения:

export spring_profiles_active=dev
...