Esse post e curto, somente para dar uma dica de como fazer para que seu controller entenda um parametro que possui (.) ponto e nao quebre.Alguns casos precisamos no get buscar algo que seja filtrado por determinado parametro, por exemplo quando buscamos um usuario, uma Url basicamente ficaria assim:GET "/user/{username}"O problema e quando esse essa variavel que e passada na uri possui um ponto, que ocasiona a quebra do valor. ExGET "/user/tiago.ribeiro"O spring entenderia que foi passado somente "tiago" descartando entao tudo que vem apos o (.). Existem algumas estrategias para burlar isso, como colocar outro nome apos o username do seu path, por exemplo:GET "/user/{username}/search"Assim ele nao descartaria o que viesse apos o ponto. Existe uma outra maneira e que na minha opiniao e a mais elegante que seria a insercao de (:.+) apos a declaracao do parametro. GET "/user/{username:.+}"Dessa maneira o Spring entendera que o ponto faz parte do parametro passado e nao quebrara.Bem como falei esse post foi curto, espero que tenham gostado. Todos sabemos como o uso de bibliotecas JavaScript vem crescendo nos ultimos anos, muito se deve por conta do Node que permitiu a evolucao da linguagem, assim como o uso de padroes na construcao de apps no lado cliente. Um dos grandes problemas do uso de js e o cache que muitas vezes mascaram mudancas feitas de uma versao para outra, quase nenhum usuario e atento a limpar o cache de tempos em tempos.Existem varias maneiras de evitar esse problema, uma delas e incluir uma tag no header de sua pagina informando quando o cache deve expirar. Ex: <META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">Outra opcao e o versionamento dos arquivos JS e CSS para forcar ao browser busca-los novamente quando perceber que existe um arquivo novo no app.Essa foi a solucao que adotamos para nosso sistema, com o uso do gulp para fazer esse controle. Explicarei nesse post as bibliotecas necessarias para fazer isso funcionar no seu problema. Para isso irei considerar que quem esta lendo esse artigo esta usando uma aplicacao com NodeJs e Gulp.Decidimos usar o timestamp para dar a "versao" dos arquivos. Para fazer a atualizacao do nome dos arquivos no nosso index.html usamos a biblioteca gulp-html-replace para fazer o replace do nome dos arquivos.Para instala-la basta um simples Npm install:npm install --save-dev gulp-html-replaceE preciso de importa-la tambem no seu arquivo gulpfile.js.var htmlreplace = require('gulp-html-replace');Crie uma variavel global chamada de timestamp para recuperar o horario local e adiciona-la nos arquivos que deseja "versionar". var timestamp = new Date().getTime();Entao na hora que eu faco o build meu arquivo assume a forma de algo assim: app_1475179620498.js assim como o css.Na hora da construcao do app eu inclui a seguinte tarefa para fazer o replace do nome dos arquivos:gulp.task('htmlreplace', function() { gulp.src( '/index.html') .pipe(htmlreplace({ 'css_vendor': 'css/'+ filename.vendor.css, 'css_app': 'css/'+ filename.app.css, 'js_vendor': 'js/'+ filename.vendor.js, 'js_app': 'js/'+ filename.app.js })) .pipe(gulp.dest('./dist')); });No metodo task eu inicio a tarefa de replace passando uma funcao como parametro, o src e onde esta localizado o arquivo que quero modificar. pipe e a funcao propriamente dita.css_vendor, css_app, js_vendor, js_app sao chaves