Spring异常处理生产与开发

时间:2013-12-19 16:26:22

标签: java spring maven spring-mvc exception-handling

我正在使用Spring MVC,我正在以第一种方式处理异常:http://www.javacodegeeks.com/2013/06/spring-mvc-error-handling-flow.html

基本上将以下代码放在web.xml中

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/uncaughtException</location>
</error-page> 

现在,我需要为生产和开发制作两种类型的视图。为了开发,我将打印完整的堆栈跟踪,为了生产,我会说:“发生了一些不好的事情,请稍后再试”。我需要建议来区分生产和开发。我正在使用apache maven进行编译,并且有一个标志“-Dbuild.type = dev”,表示它是一个开发编译。

任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:1)

看看http://spring.io/blog/2011/02/11/spring-framework-3-1-m1-released/

中描述的spring Environment抽象

答案 1 :(得分:0)

您可以在生产和开发maven配置文件中放置一个变量,并将其映射到java bean。

这是个人资料位

<profiles>
    <profile>
        <id>prod</id>
        <properties>
            <system.serverType>PROD</system.serverType>
        </properties>
    </profile>
    <profile>
        <id>qa</id>
        <properties>
            <system.serverType>QA</system.serverType>
        </properties>
    </profile>
</profiles>

然后在/src/main/resources/applicationContext.xml

<bean id="system" class="com.company.project.System" 
    p:serverType="${system.serverType}"
/>

然后将构建配置文件映射到您的java类。

public class System {
    public static enum ServerType {PROD, QA, DEV} 

    private ServerType serverType;
    public void setServerType(ServerType serverType) {
        this.serverType = serverType;
    }
    public ServerType getServerType() {
        return serverType;
    }

    public boolean isProduction() {
        return serverType == ServerType.PROD;
    }
}