¿Qué resolución de vista de primavera juega bien con angularjs?

Estoy escribiendo una aplicación web usando angularjs y spring mvc como proveedor de servicios REST y como proveedor de vista parcial (también estoy usando angular-ui-router para poder tener múltiples parciales anidados). Actualmente no tengo ningún uso para los lenguajes de plantilla ya que planeo hacer todo en angular, sin embargo, cada resolución de vista que he probado tiene algún tipo de lenguaje de plantilla que choca con angular y bloquea la aplicación y / o llena mis registros con errores

Primero intenté usar InternalResourceViewResolver pero no tuve suerte, ya que parece que solo espera archivos .jsp y no mostrará nada más.

Luego intenté usar Thymeleaf. Thymeleaf sigue el estándar XML que me obligó a reescribir la mayor parte de mi html para seguir los requisitos xml, y después de haberlo hecho, murió al encontrar un&& dentro de una directiva ng-show. Así que tampoco tuve suerte con eso.

Entonces probé Velocity. He tenido mucha suerte con la velocidad hasta ahora. Sirve archivos html muy bien, no se detiene al encontrar errores de análisis y me permite mostrar vistas parciales de la misma manera que lo hace InternalResourceViewResolver. Sin embargo, al encontrar variables angulares prefijadas por$ Velocity intenta analizarlos como variables VTL y llena mis registros con mensajes como

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

Todo sigue funcionando como debería, pero no soy el único que deja los errores, y no he encontrado ninguna forma de deshabilitar VTL.

Esa es mi experiencia actual con los solucionadores de vistas.

También tuve la idea de tratar los archivos .html como recursos estáticos (que son un poco antes de que angular haga su magia) usandomvc:resources pero sin una resolución de vista, mi aplicación no pudo iniciarse incluso si configuré el layout.html principal como el archivo de bienvenida en web.xml

Mi pregunta es. ¿Qué debo usar como un resolutor de vistas para que funcione bien con angularjs, y si incluso debería usar resolvers de vistas?

EDITAR: Estoy tratando de usar elContentNegotiatingViewResolver y obtengo:

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 en el servlet del despachador)

    <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";
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta