{"id":21428899,"url":"https://github.com/stevenschwenke/springworkshop","last_synced_at":"2026-01-06T20:38:14.367Z","repository":{"id":151063663,"uuid":"115995808","full_name":"stevenschwenke/SpringWorkshop","owner":"stevenschwenke","description":"Workshop for basic concepts of the Spring framework","archived":false,"fork":false,"pushed_at":"2018-02-07T10:14:56.000Z","size":9736,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T15:44:21.239Z","etag":null,"topics":["spring-bean","spring-boot","spring-framework","workshop"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stevenschwenke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-01-02T09:03:00.000Z","updated_at":"2024-01-19T21:15:55.000Z","dependencies_parsed_at":"2023-04-14T07:18:31.383Z","dependency_job_id":null,"html_url":"https://github.com/stevenschwenke/SpringWorkshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenschwenke%2FSpringWorkshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenschwenke%2FSpringWorkshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenschwenke%2FSpringWorkshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenschwenke%2FSpringWorkshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stevenschwenke","download_url":"https://codeload.github.com/stevenschwenke/SpringWorkshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245832750,"owners_count":20679702,"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":["spring-bean","spring-boot","spring-framework","workshop"],"created_at":"2024-11-22T22:15:11.449Z","updated_at":"2026-01-06T20:38:14.317Z","avatar_url":"https://github.com/stevenschwenke.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Framework Workshop\nThese are my notes on the great course [Spring Core - Learn Spring Framework 4 and Spring Boot on Udemy](https://www.udemy.com/spring-core). This repository does not include everything mentioned in the course, so go ahead and have a look at the other great courses from the [springframeworkguru John Thompson](https://springframework.guru)!\n\nAlso, the most part of this code is also published in [Johns repository for the workshop](https://github.com/springframeworkguru/spring-core-spring-mvc).\n\n## History of Spring\n![alt_text](images/spring-by-pivotal.png)\n- 1998 EJB Specification, aimed for scalability, security, high availability, by Sun. Multiple problems in usage, for example tightly coupled to application server\n- 2004 first release Spring as OpenSource (Spring Source, today Pivotal). Better testability because parts of implementation easily interchangeable by mocks or other implementations\n- today: Spring greatest market share. However, EJB also developed further. However, a lot of debate on how EJB will be developed in the future.\n\n## Spring Core\n![alt_text](images/springConcepts.png)\n- = central part of Spring framework\n- Spring beans = simple Java Objects (POJO)\n- by design, Spring Beans are meant to be simple, not overly complex objects (Single Responsibility Principle)\n- Dependency Injection (DI)\n\t- = dependent objects are injected into class at hand\n\t- first largely absent in original EJB specification\n- Inversion of Control (IoC)\n\t- Spring Framework is in control and manages software components and injection of components into dependent objects\n- DI + IoC allow for loosely coupled classes: when testing a web controller, inject mock database or mock service instead of the real classes\n- Spring Context = \"what all brings together\". Knows beans and configuration and injects objects accordingly\n- a lot of projects around Spring Core, for example Data, MVC, Security, Boot\n\n## Content\n__The main content of this workshop can be found in the submodules, in ascending order.__\n\n# sources\n- [Spring Core - Learn Spring Framework 4 and Spring Boot (Udemy)](https://www.udemy.com/spring-core)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenschwenke%2Fspringworkshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevenschwenke%2Fspringworkshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenschwenke%2Fspringworkshop/lists"}