How in28minutes/spring-web-services works
This repository is a set of Spring learning applications; its documented product focus is REST and SOAP services, with smaller Spring, Spring Boot, and JPA examples alongside them. The main user workflow is a client request routed to a REST resource or SOAP endpoint, then handled and returned as a response; REST also demonstrates versioning, filtering, exception handling, security, and JPA-backed resources. Source excerpts and the index confirm selected model/repository relationships, but do not expose all runtime wiring, so uncertain links are omitted.
Main entry points: user REST resources · CourseDetailsEndpoint.java Course SOAP endpoint · User.java User and posts · Course.java Course entity
Components 26
REST services
- REST resources
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/user - Hello endpoints
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldController.java - API versioning
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/versioning/VersioningPersonController.java - Response filtering
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/filtering/FilteringController.java - User and posts
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/user/User.java - User JPA repository
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jpa/UserRepository.java - Post JPA repository
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jpa/PostRepository.java - In-memory users
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/user/UserDaoService.java - Error handling
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/exception/CustomizedResponseEntityExceptionHandler.java - REST security
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/security/SpringSecurityConfiguration.java
SOAP services
- Course SOAP endpoint
soap-web-services/src/main/java/com/in28minutes/soap/webservices/soapcoursemanagement/soap/CourseDetailsEndpoint.java - SOAP contract types
soap-web-services/src/main/java/com/in28minutes/courses/CourseDetails.java - Course service
soap-web-services/src/main/java/com/in28minutes/soap/webservices/soapcoursemanagement/soap/service/CourseDetailsService.java - Course model
soap-web-services/src/main/java/com/in28minutes/soap/webservices/soapcoursemanagement/soap/bean/Course.java - SOAP configuration
soap-web-services/src/main/java/com/in28minutes/soap/webservices/soapcoursemanagement/soap/WebServiceConfig.java
Spring learning examples
- Course entity
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/Course.java - Course JPA repository
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/jpa/CourseJpaRepository.java - Course JDBC repository
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/jdbc/CourseJdbcRepository.java - Spring Data repository
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/springdatajpa/CourseSpringDataJpaRepository.java - Game runner
spring-in-10-steps/src/main/java/com/in28minutes/spring/learnspringframework/game/GameRunner.java - Gaming console API
spring-in-10-steps/src/main/java/com/in28minutes/spring/learnspringframework/game/GamingConsole.java - Game implementations
spring-in-10-steps/src/main/java/com/in28minutes/spring/learnspringframework/game/PacmanGame.java - Currency configuration
springboot-in-10-steps/src/main/java/com/in28minutes/springboot/learnspringboot/CurrencyServiceConfiguration.java - Configuration endpoint
springboot-in-10-steps/src/main/java/com/in28minutes/springboot/learnspringboot/CurrencyConfigurationController.java
Other components
- Service client
- SOAP client
Connections 19
- Service client → REST resources: requests resources
- Service client → Hello endpoints: calls endpoints
- Service client → API versioning: selects version
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/versioning/VersioningPersonController.java - Service client → Response filtering: requests filtered data
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/filtering/FilteringController.java - REST resources → In-memory users: uses in-memory data
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/user/UserDaoService.java - REST resources → User JPA repository: uses persistence
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jpa/UserRepository.java - REST resources → User and posts: exposes user data
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/user/UserDaoService.java - User JPA repository → User and posts: maps entity
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jpa/UserRepository.java - Post JPA repository → User and posts: maps post entity
restful-web-services-v2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/jpa/PostRepository.java - SOAP client → Course SOAP endpoint: sends SOAP request
- Course SOAP endpoint → Course service: delegates course work
- Course service → Course model: stores course records
soap-web-services/src/main/java/com/in28minutes/soap/webservices/soapcoursemanagement/soap/service/CourseDetailsService.java - SOAP configuration → Course SOAP endpoint: configures endpoint
- Game runner → Gaming console API: invokes controls
spring-in-10-steps/src/main/java/com/in28minutes/spring/learnspringframework/game/GameRunner.java - Game implementations → Gaming console API: implements interface
spring-in-10-steps/src/main/java/com/in28minutes/spring/learnspringframework/game/PacmanGame.java - Configuration endpoint → Currency configuration: returns configuration
springboot-in-10-steps/src/main/java/com/in28minutes/springboot/learnspringboot/CurrencyConfigurationController.java - Course JPA repository → Course entity: persists entity
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/jpa/CourseJpaRepository.java - Course JDBC repository → Course entity: maps course
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/jdbc/CourseJdbcRepository.java - Spring Data repository → Course entity: manages entity
jpa-in-10-steps/src/main/java/com/in28minutes/springboot/learnjpaandhibernate/course/springdatajpa/CourseSpringDataJpaRepository.java