在Java Spring中,如何创建仅在开发中可见的URL路由?

时间:2014-06-25 15:35:56

标签: java spring spring-mvc

所以我对Spring MVC很陌生,但我想知道是否有办法设置一条在开发或测试环境中可见但在生产中不可见的路线?

为了区分环境,我有一个配置文件(通过" context:property-placeholder" namespace元素加载),并且我设置了我的控制器,类似于所讨论的内容在这里 - http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html

1 个答案:

答案 0 :(得分:1)

这取决于您的需要,但我更倾向于使用配置文件来实现这一目标。

A)使用配置文件属性和xml-configuration。

<beans profile="myProfileForTest">
  <bean>.... your bean definitions here for this profile
</beans>
<beans profile="myProfileForProd">
  <bean>.... your bean definitions here for this profile
</beans>

B)使用@ Profile-annotated Spring bean作为Spring @Component类(@ Repository,@ Service,@ Controller)的类型级注释。元注释在这里很有用。

@Profile("myProfileForTest")
public class MySpringBean {
   ....
}

然后,您可以通过传入系统参数来定义活动配置文件:

-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>