如果你想让你的类或者一个方法只在特定的环境下有效,那么可以使用 @Profile 注解来实现。
比如你有一个控制器类 TestController,用于在 测试环境下的使用,一旦被部署人员不小心部署到正式环境下,其实是非常危险的一件事。这时就需要在这个类前面使用 @Profile 注解。
第一步:修改 web.xml 文件,在末尾添加如下内容:
<!-- 设置激活的 Profile 开发阶段 = dev,正式环境 = prod。
在代码端如果没有设置@Profile注解的,不受任何限制。即任何 时候都生效 -->
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
第二步:在需限制的类或者方法前面使用 @Profile 注解
@Controller
@Profile("dev") // 当 web.xml 配置文件中设置为 dev 时,该类才可以被访问
public class TestController {
// 其他代码
}
注意:在使用 @Profile 之前 确保 SpringMVC 项目可以正常运行;其次,没有使用 @Profile 注解的类在任何时候都有效,也就是说,不管 web.xml 配置文件中,如何修改 spring.profiles.active 的值,一个类或者方法,没有使用 @Profile 注解,它总是有效的。