{"id":14986858,"url":"https://github.com/mpalourdio/springbootangularhtml5","last_synced_at":"2025-04-05T18:09:16.608Z","repository":{"id":10977396,"uuid":"67875209","full_name":"mpalourdio/SpringBootAngularHTML5","owner":"mpalourdio","description":":hotsprings: Spring Boot 3 + Angular + HTML5 router mode + HTTP interceptor + Lazy loaded modules","archived":false,"fork":false,"pushed_at":"2025-04-03T07:33:23.000Z","size":5835,"stargazers_count":92,"open_issues_count":0,"forks_count":42,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-05T18:09:12.194Z","etag":null,"topics":["angular","angular-cli","angular2","font-awesome","html5","jasmine","karma","maven","spring-boot","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpalourdio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mpalourdio"}},"created_at":"2016-09-10T14:23:39.000Z","updated_at":"2025-04-03T07:33:24.000Z","dependencies_parsed_at":"2023-12-22T07:35:46.523Z","dependency_job_id":"af3fd054-a11b-4e10-a256-a160ed247d0f","html_url":"https://github.com/mpalourdio/SpringBootAngularHTML5","commit_stats":{"total_commits":889,"total_committers":2,"mean_commits":444.5,"dds":"0.0022497187851518996","last_synced_commit":"aa873aba65314107de22d4de9c8de4702fa58b59"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalourdio%2FSpringBootAngularHTML5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalourdio%2FSpringBootAngularHTML5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalourdio%2FSpringBootAngularHTML5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalourdio%2FSpringBootAngularHTML5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpalourdio","download_url":"https://codeload.github.com/mpalourdio/SpringBootAngularHTML5/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378149,"owners_count":20929297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","angular-cli","angular2","font-awesome","html5","jasmine","karma","maven","spring-boot","typescript"],"created_at":"2024-09-24T14:13:41.035Z","updated_at":"2025-04-05T18:09:16.588Z","avatar_url":"https://github.com/mpalourdio.png","language":"TypeScript","readme":"[![back](https://github.com/mpalourdio/SpringBootAngularHTML5/actions/workflows/back.yml/badge.svg)](https://github.com/mpalourdio/SpringBootAngularHTML5/actions/workflows/back.yml)\n[![front](https://github.com/mpalourdio/SpringBootAngularHTML5/actions/workflows/front.yml/badge.svg)](https://github.com/mpalourdio/SpringBootAngularHTML5/actions/workflows/front.yml)\n\nThis project is available in **Kotlin** too. Take a look at [this repository](https://github.com/mpalourdio/SpringBootKotlinAngular).\n\nSpring Boot 3.x and Angular with HTML 5 router\n====================================================\n\nThis project provides an example of an Angular single page application, served by ``Tomcat``,\nconfigured with the ``html5 router``. Some endpoints have Spring Webflux integration too.\n\nThe [SinglePageAppConfig](src/main/java/com/mpalourdio/html5/config/SinglePageAppConfig.java) makes the magic here.\n\nThe ``base-href`` in configured by the ResourceResolver. It's generated from the value of the application's [context-path](src/main/resources/application.properties#L11) at runtime when served by tomcat.\n\nIt's useful if you want to serve an Angular application with the ``html5 router``, and avoid the dashed URL.\n\nThis ``html5 router`` mode makes pretty URL, but has a default : Refreshing pages (or accessing them directly) will give you a 404\nHTTP error if no RewriteRule is provided by the HTTP server that serves the application.\n\nHandling the ``base-href`` dynamically can be tricky too. Here it's done once and for all by the ResourceResolver.\n\nThis project includes a custom [HTTP interceptor](https://github.com/mpalourdio/ng-http-loader). It's useful to show a [loader](https://github.com/tobiasahlin/SpinKit) during long HTTP requests for example.\n\nTo test the fully built project, run [SpringBootAngularHTML5Application](src/main/java/com/mpalourdio/html5/SpringBootAngularHTML5Application.java) after an ``./mvnw clean install -Pfront``, and point your browser to [http://localhost:10000/my-context/path](http://localhost:10000/my-context/path).\n\nIf you want to play with the front part, go to the [front folder](front) and run ``yarn start`` or ``npm start``. HTTP requests will be correctly proxyfied to your backend.\n\nThe front-end part has been scaffolded with [angular-cli](https://github.com/angular/angular-cli).\n","funding_links":["https://github.com/sponsors/mpalourdio"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpalourdio%2Fspringbootangularhtml5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpalourdio%2Fspringbootangularhtml5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpalourdio%2Fspringbootangularhtml5/lists"}