在JavaSpring中,我如何创建一个';它只在开发中可见?

在JavaSpring中,我如何创建一个';它只在开发中可见?,java,spring,spring-mvc,Java,Spring,Spring Mvc,所以我对SpringMVC很陌生,但我想知道是否有一种方法可以设置一个在开发或测试环境中可见但在生产环境中不可见的路由 为了区分不同的环境,我有一个配置文件(通过“context:property placeholder”名称空间元素加载),并且我已经设置了类似于此处所述的控制器-这取决于您的需要,但我更喜欢使用配置文件来实现这一点 A) 通过在xml配置中使用profile属性 <beans profile="myProfileForTest"> <bean>...

所以我对SpringMVC很陌生,但我想知道是否有一种方法可以设置一个在开发或测试环境中可见但在生产环境中不可见的路由


为了区分不同的环境,我有一个配置文件(通过“context:property placeholder”名称空间元素加载),并且我已经设置了类似于此处所述的控制器-

这取决于您的需要,但我更喜欢使用配置文件来实现这一点

A) 通过在xml配置中使用profile属性

<beans profile="myProfileForTest">
  <bean>.... your bean definitions here for this profile
</beans>
<beans profile="myProfileForProd">
  <bean>.... your bean definitions here for this profile
</beans>
然后,您可以通过传入系统参数来定义活动配置文件:

-Dspring.profiles.active="standalone"
或者将其作为web.xml中的init参数提供给DispatcherServlet:

<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
      <param-name>spring.profiles.active</param-name>
      <param-value>production</param-value>
  </init-param>

调度员
org.springframework.web.servlet.DispatcherServlet
spring.profiles.active
生产

查看
@Profile
。仅在开发/测试环境中创建开发/测试控制器。我认为答案是肯定的,但如果您对如何创建感兴趣,您应该说明如何准确区分开发和产品环境。现在,我通过“上下文:属性占位符”加载的属性文件中的变量来区分名称空间元素。可能是您可以查看的
<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
      <param-name>spring.profiles.active</param-name>
      <param-value>production</param-value>
  </init-param>