Qual resolvedor de vista de primavera funciona bem com angularjs?

Estou escrevendo um webapp usando angularjs e spring mvc como provedor de serviços REST e como provedor de exibição parcial (também estou usando o angular-ui-router para que eu possa ter várias partes aninhadas). No momento, não tenho nenhum uso para linguagens de modelos, pois pretendo fazer tudo em angular, no entanto, todos os resolvedores de exibição que tentei têm algum tipo de linguagem de modelo que entra em conflito com angular e trava o aplicativo e / ou preenche meus logs com erros.

Primeiro, tentei usar o InternalResourceViewResolver, mas não tive sorte, pois parece que ele espera apenas arquivos .jsp e não mostra mais nada.

Então eu tentei usar o Thymeleaf. O Thymeleaf segue o padrão XML que me forçou a reescrever a maior parte do meu html para seguir os requisitos de xml, e depois que eu fiz isso, ele morreu ao encontrar um&& dentro de uma diretiva ng-show. Portanto, não há sorte com isso também.

Então eu tentei o Velocity. Eu tive mais sorte com velocidade até agora. Ele serve arquivos html muito bem, não para de encontrar erros de análise e me permite exibir visualizações parciais da mesma forma que InternalResourceViewResolver. No entanto, ao encontrar variáveis angulares prefixadas por$ O Velocity tenta analisá-las como variáveis VTL e preenche meus logs com mensagens como

velocity - Null reference [template 'clients/createOrEdit.html', line 1, column 65] : $invalid cannot be resolved.

Tudo continua funcionando como deveria, mas não sou eu que deixo os erros, e não encontrei nenhuma maneira de desativar a VTL.

Essa é a minha experiência atual com os resolvedores de visualizações.

Eu também tive uma ideia de tratar arquivos .html como recursos estáticos (que eles são antes que angulares sejam mágicos) usandomvc:resources mas sem nenhum resolvedor de exibição, meu aplicativo falhou ao iniciar, mesmo que eu definisse o layout.html principal como o arquivo de boas-vindas em web.xml

Minha pergunta é. O que devo usar como um resolvedor de exibição para que ele seja agradável com o angularjs e se devo usar os resolvedores de exibição?

EDITAR: Estou tentando usar oContentNegotiatingViewResolver e eu recebo:

DEBUG ContentNegotiatingViewResolver - Requested media types are [text/html] based on Accept header types and producible media types [*/*])
DEBUG ContentNegotiatingViewResolver - No acceptable view found; returning null
DEBUG DispatcherServlet - Could not complete request
javax.servlet.ServletException: Could not resolve view with name 'layout.html' in servlet with name 'springDispatcherServlet'

webapp-config.xml (contextconfig no servlet do dispatcher)

    <mvc:annotation-driven />

    <!-- Resources -->
    <mvc:resources location="/libs/" mapping="/libs/**" />
    <mvc:resources location="/css/" mapping="/css/**" />
    <mvc:resources location="/js/" mapping="/js/**" />
    <!-- Angular application data -->
    <mvc:resources location="/WEB-INF/appjs/" mapping="/appjs/**" />
    <!-- View locations -->
    <mvc:resources location="/WEB-INF/html/" mapping="/**"/>

    <!-- Controllers -->
    <context:component-scan base-package="com.mrplow.controller" />

    <!-- Views -->
    <util:map id="contentMediaTypes">
        <entry key="json" value="application/json" />
        <entry key="html" value="text/html" />
    </util:map>

<!--    <util:list id="defaultViews"> -->
<!--        <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />       -->
<!--    </util:list> -->

    <bean id="viewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"
    p:order="1"
    p:ignoreAcceptHeader="false"
    p:defaultContentType="text/html"
    p:mediaTypes-ref="contentMediaTypes" /> 

LayoutController.java

@Controller
@RequestMapping("/")
public class LayoutController {

    @RequestMapping
    public String getIndexPage() {
        return "layout";
    }
}

questionAnswers(3)

yourAnswerToTheQuestion