├── .idea ├── .gitignore ├── compiler.xml ├── dataSources.xml ├── encodings.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── libraries │ ├── Maven__antlr_antlr_2_7_7.xml │ ├── Maven__ch_qos_logback_logback_classic_1_2_6.xml │ ├── Maven__ch_qos_logback_logback_core_1_2_6.xml │ ├── Maven__classworlds_classworlds_1_1_alpha_2.xml │ ├── Maven__com_fasterxml_classmate_1_5_1.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_12_5.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_12_5.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_12_5.xml │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_12_5.xml │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_12_5.xml │ ├── Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_12_5.xml │ ├── Maven__com_google_code_findbugs_annotations_2_0_1.xml │ ├── Maven__com_google_code_findbugs_jsr305_1_3_9.xml │ ├── Maven__com_google_code_gson_gson_2_8_8.xml │ ├── Maven__com_google_guava_guava_20_0.xml │ ├── Maven__com_h2database_h2_1_4_200.xml │ ├── Maven__com_infradna_tool_bridge_method_annotation_1_13.xml │ ├── Maven__com_jayway_jsonpath_json_path_2_5_0.xml │ ├── Maven__com_mysema_codegen_codegen_0_6_8.xml │ ├── Maven__com_mysema_commons_mysema_commons_lang_0_2_4.xml │ ├── Maven__com_querydsl_querydsl_apt_4_4_0.xml │ ├── Maven__com_querydsl_querydsl_codegen_4_4_0.xml │ ├── Maven__com_querydsl_querydsl_core_4_4_0.xml │ ├── Maven__com_querydsl_querydsl_jpa_4_4_0.xml │ ├── Maven__com_sun_activation_jakarta_activation_1_2_2.xml │ ├── Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml │ ├── Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml │ ├── Maven__com_zaxxer_HikariCP_4_0_3.xml │ ├── Maven__commons_codec_commons_codec_1_15.xml │ ├── Maven__io_jsonwebtoken_jjwt_0_9_1.xml │ ├── Maven__io_micrometer_micrometer_core_1_7_5.xml │ ├── Maven__io_netty_netty_buffer_4_1_69_Final.xml │ ├── Maven__io_netty_netty_codec_4_1_69_Final.xml │ ├── Maven__io_netty_netty_codec_dns_4_1_69_Final.xml │ ├── Maven__io_netty_netty_codec_http2_4_1_69_Final.xml │ ├── Maven__io_netty_netty_codec_http_4_1_69_Final.xml │ ├── Maven__io_netty_netty_codec_socks_4_1_69_Final.xml │ ├── Maven__io_netty_netty_common_4_1_69_Final.xml │ ├── Maven__io_netty_netty_handler_4_1_69_Final.xml │ ├── Maven__io_netty_netty_handler_proxy_4_1_69_Final.xml │ ├── Maven__io_netty_netty_resolver_4_1_69_Final.xml │ ├── Maven__io_netty_netty_resolver_dns_4_1_69_Final.xml │ ├── Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_69_Final.xml │ ├── Maven__io_netty_netty_transport_4_1_69_Final.xml │ ├── Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_69_Final.xml │ ├── Maven__io_netty_netty_transport_native_unix_common_4_1_69_Final.xml │ ├── Maven__io_projectreactor_netty_reactor_netty_core_1_0_12.xml │ ├── Maven__io_projectreactor_netty_reactor_netty_http_1_0_12.xml │ ├── Maven__io_projectreactor_reactor_core_3_4_11.xml │ ├── Maven__io_springfox_springfox_core_2_9_2.xml │ ├── Maven__io_springfox_springfox_schema_2_9_2.xml │ ├── Maven__io_springfox_springfox_spi_2_9_2.xml │ ├── Maven__io_springfox_springfox_spring_web_2_9_2.xml │ ├── Maven__io_springfox_springfox_swagger2_2_9_2.xml │ ├── Maven__io_springfox_springfox_swagger_common_2_9_2.xml │ ├── Maven__io_springfox_springfox_swagger_ui_2_9_2.xml │ ├── Maven__io_swagger_swagger_annotations_1_5_20.xml │ ├── Maven__io_swagger_swagger_models_1_5_20.xml │ ├── Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml │ ├── Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml │ ├── Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml │ ├── Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml │ ├── Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml │ ├── Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml │ ├── Maven__javax_inject_javax_inject_1.xml │ ├── Maven__junit_junit_4_13_2.xml │ ├── Maven__net_bytebuddy_byte_buddy_1_10_22.xml │ ├── Maven__net_bytebuddy_byte_buddy_agent_1_10_22.xml │ ├── Maven__net_minidev_accessors_smart_2_4_7.xml │ ├── Maven__net_minidev_json_smart_2_4_7.xml │ ├── Maven__org_apache_httpcomponents_httpclient_4_5_13.xml │ ├── Maven__org_apache_httpcomponents_httpcore_4_4_14.xml │ ├── Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml │ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml │ ├── Maven__org_apache_maven_doxia_doxia_sink_api_1_0.xml │ ├── Maven__org_apache_maven_maven_aether_provider_3_0.xml │ ├── Maven__org_apache_maven_maven_artifact_3_0.xml │ ├── Maven__org_apache_maven_maven_artifact_manager_2_0_2.xml │ ├── Maven__org_apache_maven_maven_core_3_0.xml │ ├── Maven__org_apache_maven_maven_model_3_0.xml │ ├── Maven__org_apache_maven_maven_model_builder_3_0.xml │ ├── Maven__org_apache_maven_maven_plugin_api_3_0.xml │ ├── Maven__org_apache_maven_maven_repository_metadata_3_0.xml │ ├── Maven__org_apache_maven_maven_settings_3_0.xml │ ├── Maven__org_apache_maven_maven_settings_builder_3_0.xml │ ├── Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml │ ├── Maven__org_apache_maven_shared_file_management_1_2_1.xml │ ├── Maven__org_apache_maven_shared_maven_shared_io_1_1.xml │ ├── Maven__org_apache_maven_wagon_wagon_provider_api_1_0_alpha_6.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_54.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_54.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_54.xml │ ├── Maven__org_apiguardian_apiguardian_api_1_1_0.xml │ ├── Maven__org_aspectj_aspectjweaver_1_9_7.xml │ ├── Maven__org_assertj_assertj_core_3_19_0.xml │ ├── Maven__org_codehaus_plexus_plexus_classworlds_2_2_3.xml │ ├── Maven__org_codehaus_plexus_plexus_component_annotations_1_5_5.xml │ ├── Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_9.xml │ ├── Maven__org_codehaus_plexus_plexus_interpolation_1_14.xml │ ├── Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml │ ├── Maven__org_dom4j_dom4j_2_1_3.xml │ ├── Maven__org_eclipse_jdt_core_compiler_ecj_4_3_1.xml │ ├── Maven__org_glassfish_jaxb_jaxb_runtime_2_3_5.xml │ ├── Maven__org_glassfish_jaxb_txw2_2_3_5.xml │ ├── Maven__org_hamcrest_hamcrest_2_2.xml │ ├── Maven__org_hamcrest_hamcrest_core_2_2.xml │ ├── Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml │ ├── Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml │ ├── Maven__org_hibernate_hibernate_core_5_4_32_Final.xml │ ├── Maven__org_hibernate_validator_hibernate_validator_6_2_0_Final.xml │ ├── Maven__org_jacoco_jacoco_maven_plugin_0_8_7.xml │ ├── Maven__org_jacoco_org_jacoco_agent_runtime_0_8_7.xml │ ├── Maven__org_jacoco_org_jacoco_core_0_8_7.xml │ ├── Maven__org_jacoco_org_jacoco_report_0_8_7.xml │ ├── Maven__org_javassist_javassist_3_27_0_GA.xml │ ├── Maven__org_jboss_jandex_2_2_3_Final.xml │ ├── Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml │ ├── Maven__org_junit_jupiter_junit_jupiter_5_7_2.xml │ ├── Maven__org_junit_jupiter_junit_jupiter_api_5_7_2.xml │ ├── Maven__org_junit_jupiter_junit_jupiter_engine_5_7_2.xml │ ├── Maven__org_junit_jupiter_junit_jupiter_params_5_7_2.xml │ ├── Maven__org_junit_platform_junit_platform_commons_1_7_2.xml │ ├── Maven__org_junit_platform_junit_platform_engine_1_7_2.xml │ ├── Maven__org_latencyutils_LatencyUtils_2_0_3.xml │ ├── Maven__org_mapstruct_mapstruct_1_2_0_Final.xml │ ├── Maven__org_mariadb_jdbc_mariadb_java_client_2_7_3.xml │ ├── Maven__org_mariadb_jdbc_mariadb_java_client_2_7_4.xml │ ├── Maven__org_mockito_mockito_core_3_9_0.xml │ ├── Maven__org_mockito_mockito_junit_jupiter_3_9_0.xml │ ├── Maven__org_objenesis_objenesis_3_2.xml │ ├── Maven__org_opentest4j_opentest4j_1_2_0.xml │ ├── Maven__org_ow2_asm_asm_9_1.xml │ ├── Maven__org_ow2_asm_asm_analysis_9_1.xml │ ├── Maven__org_ow2_asm_asm_commons_9_1.xml │ ├── Maven__org_ow2_asm_asm_tree_9_1.xml │ ├── Maven__org_projectlombok_lombok_1_18_22.xml │ ├── Maven__org_reactivestreams_reactive_streams_1_0_3.xml │ ├── Maven__org_reflections_reflections_0_9_9.xml │ ├── Maven__org_skyscreamer_jsonassert_1_5_0.xml │ ├── Maven__org_slf4j_jul_to_slf4j_1_7_32.xml │ ├── Maven__org_slf4j_slf4j_api_1_7_32.xml │ ├── Maven__org_sonatype_aether_aether_api_1_7.xml │ ├── Maven__org_sonatype_aether_aether_impl_1_7.xml │ ├── Maven__org_sonatype_aether_aether_spi_1_7.xml │ ├── Maven__org_sonatype_aether_aether_util_1_7.xml │ ├── Maven__org_sonatype_plexus_plexus_cipher_1_4.xml │ ├── Maven__org_sonatype_plexus_plexus_sec_dispatcher_1_3.xml │ ├── Maven__org_sonatype_sisu_sisu_guice_noaop_2_1_7.xml │ ├── Maven__org_sonatype_sisu_sisu_inject_bean_1_4_2.xml │ ├── Maven__org_sonatype_sisu_sisu_inject_plexus_1_4_2.xml │ ├── Maven__org_springframework_boot_spring_boot_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_actuator_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_configuration_processor_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_actuator_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_aop_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_jdbc_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_json_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_reactor_netty_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_security_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_test_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_validation_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_web_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_webflux_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_test_2_5_6.xml │ ├── Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_5_6.xml │ ├── Maven__org_springframework_data_spring_data_commons_2_5_6.xml │ ├── Maven__org_springframework_data_spring_data_jpa_2_5_6.xml │ ├── Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml │ ├── Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml │ ├── Maven__org_springframework_security_spring_security_config_5_5_3.xml │ ├── Maven__org_springframework_security_spring_security_core_5_5_3.xml │ ├── Maven__org_springframework_security_spring_security_crypto_5_5_3.xml │ ├── Maven__org_springframework_security_spring_security_web_5_5_3.xml │ ├── Maven__org_springframework_spring_aop_5_3_12.xml │ ├── Maven__org_springframework_spring_aspects_5_3_12.xml │ ├── Maven__org_springframework_spring_beans_5_3_12.xml │ ├── Maven__org_springframework_spring_context_5_3_12.xml │ ├── Maven__org_springframework_spring_core_5_3_12.xml │ ├── Maven__org_springframework_spring_expression_5_3_12.xml │ ├── Maven__org_springframework_spring_jcl_5_3_12.xml │ ├── Maven__org_springframework_spring_jdbc_5_3_12.xml │ ├── Maven__org_springframework_spring_orm_5_3_12.xml │ ├── Maven__org_springframework_spring_test_5_3_12.xml │ ├── Maven__org_springframework_spring_tx_5_3_12.xml │ ├── Maven__org_springframework_spring_web_5_3_12.xml │ ├── Maven__org_springframework_spring_webflux_5_3_12.xml │ ├── Maven__org_springframework_spring_webmvc_5_3_12.xml │ ├── Maven__org_xmlunit_xmlunit_core_2_8_3.xml │ └── Maven__org_yaml_snakeyaml_1_28.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml └── vcs.xml ├── README.md ├── chapter1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── wikibooks │ │ │ └── chapter1 │ │ │ ├── Chapter1Application.java │ │ │ ├── controller │ │ │ ├── DIController.java │ │ │ ├── FieldInjectionController.java │ │ │ ├── NoDIController.java │ │ │ └── SetterInjectionController.java │ │ │ └── service │ │ │ ├── MyService.java │ │ │ └── MyServiceImpl.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── wikibooks │ └── chapter1 │ └── Chapter1ApplicationTests.java ├── chapter10_valid_exception ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── valid_exception │ │ │ ├── ValidExceptionApplication.java │ │ │ ├── common │ │ │ ├── Constants.java │ │ │ └── exception │ │ │ │ ├── CustomException.java │ │ │ │ └── CustomExceptionHandler.java │ │ │ ├── config │ │ │ ├── JpaAuditingConfiguration.java │ │ │ ├── SwaggerConfiguration.java │ │ │ └── annotation │ │ │ │ ├── Telephone.java │ │ │ │ └── TelephoneValidator.java │ │ │ ├── controller │ │ │ ├── ExceptionController.java │ │ │ ├── ProductController.java │ │ │ └── ValidationController.java │ │ │ ├── data │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── ProductDto.java │ │ │ │ ├── ProductResponseDto.java │ │ │ │ ├── ValidRequestDto.java │ │ │ │ └── ValidatedRequestDto.java │ │ │ ├── entity │ │ │ │ ├── BaseEntity.java │ │ │ │ └── Product.java │ │ │ ├── group │ │ │ │ ├── ValidationGroup1.java │ │ │ │ └── ValidationGroup2.java │ │ │ └── repository │ │ │ │ └── ProductRepository.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ └── impl │ │ │ └── ProductServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── valid_exception │ └── ValidExceptionApplicationTests.java ├── chapter11_actuator ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── actuator │ │ │ ├── ActuatorApplication.java │ │ │ ├── config │ │ │ ├── SwaggerConfiguration.java │ │ │ └── actuator │ │ │ │ ├── CustomInfoContributor.java │ │ │ │ └── NoteEndpoint.java │ │ │ └── controller │ │ │ └── BasicController.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── actuator │ └── ActuatorApplicationTests.java ├── chapter12_rest ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── rest │ │ │ ├── RestApplication.java │ │ │ ├── config │ │ │ └── SwaggerConfiguration.java │ │ │ ├── controller │ │ │ ├── RestTemplateController.java │ │ │ └── WebClientController.java │ │ │ ├── dto │ │ │ └── MemberDto.java │ │ │ └── service │ │ │ ├── RestTemplateService.java │ │ │ └── WebClientService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── springboot │ └── rest │ └── RestApplicationTests.java ├── chapter13_security ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── security │ │ │ ├── SecurityApplication.java │ │ │ ├── common │ │ │ └── CommonResponse.java │ │ │ ├── config │ │ │ ├── JpaAuditingConfiguration.java │ │ │ ├── PasswordEncoderConfiguration.java │ │ │ ├── SwaggerConfiguration.java │ │ │ └── security │ │ │ │ ├── CustomAccessDeniedHandler.java │ │ │ │ ├── CustomAuthenticationEntryPoint.java │ │ │ │ ├── JwtAuthenticationFilter.java │ │ │ │ ├── JwtTokenProvider.java │ │ │ │ └── SecurityConfiguration.java │ │ │ ├── controller │ │ │ ├── ProductController.java │ │ │ └── SignController.java │ │ │ ├── data │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── EntryPointErrorResponse.java │ │ │ │ ├── ProductDto.java │ │ │ │ ├── ProductResponseDto.java │ │ │ │ ├── SignInRequestDto.java │ │ │ │ ├── SignInResultDto.java │ │ │ │ ├── SignUpRequestDto.java │ │ │ │ └── SignUpResultDto.java │ │ │ ├── entity │ │ │ │ ├── Product.java │ │ │ │ └── User.java │ │ │ └── repository │ │ │ │ ├── ProductRepository.java │ │ │ │ └── UserRepository.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ ├── SignService.java │ │ │ └── impl │ │ │ ├── ProductServiceImpl.java │ │ │ ├── SignServiceImpl.java │ │ │ └── UserDetailsServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── security │ └── SecurityApplicationTests.java ├── chapter2_design_pattern ├── design_pattern.iml ├── pom.xml └── src │ └── main │ └── java │ └── design_pattern │ ├── abstract_factory │ ├── ACustomFactory.java │ ├── AObject.java │ ├── AbstractFactory.java │ ├── AbstractObject.java │ ├── BCustomFactory.java │ ├── BObject.java │ └── Main.java │ ├── adapter │ ├── AirConditioner.java │ ├── Computer.java │ ├── Electronic110v.java │ ├── Electronic220v.java │ ├── Main.java │ ├── PowerAdapter.java │ └── Radio.java │ ├── proxy │ ├── Main.java │ ├── Proxy.java │ ├── Service.java │ └── ServiceImpl.java │ └── singleton │ ├── Main.java │ ├── MyObject.java │ └── SingletonObject.java ├── chapter4_hello ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── hello │ │ │ ├── HelloApplication.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── springboot │ └── hello │ └── Chapter4HelloApplicationTests.java ├── chapter5_api ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── api │ │ │ ├── ApiApplication.java │ │ │ ├── config │ │ │ └── SwaggerConfiguration.java │ │ │ ├── controller │ │ │ ├── DeleteController.java │ │ │ ├── GetController.java │ │ │ ├── PostController.java │ │ │ └── PutController.java │ │ │ └── dto │ │ │ └── MemberDto.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── api │ └── Chapter5ApiApplicationTests.java ├── chapter6_jpa ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── jpa │ │ │ ├── JpaApplication.java │ │ │ ├── config │ │ │ └── SwaggerConfiguration.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── data │ │ │ ├── dao │ │ │ │ ├── ProductDAO.java │ │ │ │ └── impl │ │ │ │ │ └── ProductDAOImpl.java │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── ProductDto.java │ │ │ │ └── ProductResponseDto.java │ │ │ ├── entity │ │ │ │ └── Product.java │ │ │ └── repository │ │ │ │ └── ProductRepository.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ └── impl │ │ │ └── ProductServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── jpa │ └── JpaApplicationTests.java ├── chapter7_test ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── test │ │ │ ├── TestApplication.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── data │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── ProductDto.java │ │ │ │ └── ProductResponseDto.java │ │ │ ├── entity │ │ │ │ └── Product.java │ │ │ └── repository │ │ │ │ └── ProductRepository.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ └── impl │ │ │ └── ProductServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── test │ ├── TestApplicationTests.java │ ├── TestLifeCycle.java │ ├── controller │ └── ProductControllerTest.java │ ├── data │ └── repository │ │ ├── ProductRepositoryTest.java │ │ ├── ProductRepositoryTest2.java │ │ └── ProductRepositoryTestByH2.java │ └── service │ └── impl │ ├── ProductServiceTest.java │ └── ProductServiceTest2.java ├── chapter8_advanced_jpa ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── advanced_jpa │ │ │ ├── AdvancedJpaApplication.java │ │ │ ├── config │ │ │ ├── JpaAuditingConfiguration.java │ │ │ ├── QueryDSLConfiguration.java │ │ │ └── SwaggerConfiguration.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── data │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── ProductDto.java │ │ │ │ └── ProductResponseDto.java │ │ │ ├── entity │ │ │ │ ├── BaseEntity.java │ │ │ │ └── Product.java │ │ │ └── repository │ │ │ │ ├── ProductRepository.java │ │ │ │ ├── QProductRepository.java │ │ │ │ ├── QProductRepositorySupport.java │ │ │ │ └── support │ │ │ │ ├── ProductRepository.java │ │ │ │ ├── ProductRepositoryCustom.java │ │ │ │ └── ProductRepositoryCustomImpl.java │ │ │ └── service │ │ │ ├── ProductService.java │ │ │ └── impl │ │ │ └── ProductServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── advanced_jpa │ ├── AdvancedJpaApplicationTests.java │ └── data │ └── repository │ ├── ProductRepositoryTest.java │ ├── QProductRepositorySupportTest.java │ ├── QProductRepositoryTest.java │ └── support │ └── ProductRepositoryTest.java ├── chapter9_relationship ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springboot │ │ │ └── relationship │ │ │ ├── RelationshipApplication.java │ │ │ ├── config │ │ │ ├── JpaAuditingConfiguration.java │ │ │ └── QueryDSLConfiguration.java │ │ │ ├── controller │ │ │ └── ProductController.java │ │ │ ├── data │ │ │ ├── dto │ │ │ │ ├── ChangeProductNameDto.java │ │ │ │ ├── ProductDto.java │ │ │ │ └── ProductResponseDto.java │ │ │ ├── entity │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── Category.java │ │ │ │ ├── Producer.java │ │ │ │ ├── Product.java │ │ │ │ ├── ProductDetail.java │ │ │ │ └── Provider.java │ │ │ └── repository │ │ │ │ ├── CategoryRepository.java │ │ │ │ ├── ProducerRepository.java │ │ │ │ ├── ProductDetailRepository.java │ │ │ │ ├── ProductRepository.java │ │ │ │ ├── ProviderRepository.java │ │ │ │ ├── QProductRepository.java │ │ │ │ ├── QProductRepositorySupport.java │ │ │ │ └── support │ │ │ │ ├── ProductRepository.java │ │ │ │ ├── ProductRepositoryCustom.java │ │ │ │ └── ProductRepositoryImpl.java │ │ │ └── service │ │ │ ├── ProductDetailService.java │ │ │ ├── ProductService.java │ │ │ └── impl │ │ │ ├── ProductDetailServiceImpl.java │ │ │ └── ProductServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── springboot │ └── relationship │ ├── RelationshipApplicationTests.java │ └── data │ └── repository │ ├── CategoryRepositoryTest.java │ ├── ProducerRepositoryTest.java │ ├── ProductDetailRepositoryTest.java │ ├── ProductRepositoryTest.java │ └── ProviderRepositoryTest.java ├── cover.jpg └── serverBox ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── springboot │ │ └── serverbox │ │ ├── ServerBoxApplication.java │ │ ├── controller │ │ └── CrudController.java │ │ └── dto │ │ └── MemberDto.java └── resources │ ├── application.properties │ └── logback-spring.xml └── test └── java └── com └── springboot └── serverbox └── ServerBoxApplicationTests.java /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /.idea/dataSources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mariadb 6 | true 7 | org.mariadb.jdbc.Driver 8 | jdbc:mariadb://localhost:3306/springboot 9 | $ProjectFileDir$ 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__antlr_antlr_2_7_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__classworlds_classworlds_1_1_alpha_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_12_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_12_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_12_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_12_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_findbugs_annotations_2_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_gson_gson_2_8_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_guava_guava_20_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_h2database_h2_1_4_200.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_infradna_tool_bridge_method_annotation_1_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_mysema_codegen_codegen_0_6_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_mysema_commons_mysema_commons_lang_0_2_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_querydsl_querydsl_apt_4_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_querydsl_querydsl_codegen_4_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_querydsl_querydsl_core_4_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_querydsl_querydsl_jpa_4_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_micrometer_micrometer_core_1_7_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_buffer_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_http_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_common_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_handler_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_resolver_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_transport_4_1_69_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_inject_javax_inject_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_13_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_accessors_smart_2_4_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_json_smart_2_4_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_14_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_14_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_doxia_doxia_sink_api_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_aether_provider_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_artifact_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_artifact_manager_2_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_core_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_model_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_model_builder_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_plugin_api_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_repository_metadata_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_settings_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_maven_settings_builder_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_shared_file_management_1_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_shared_maven_shared_io_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_maven_wagon_wagon_provider_api_1_0_alpha_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_54.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_54.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_54.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_assertj_assertj_core_3_19_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_plexus_plexus_classworlds_2_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_plexus_plexus_component_annotations_1_5_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_plexus_plexus_interpolation_1_14.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_eclipse_jdt_core_compiler_ecj_4_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hibernate_hibernate_core_5_4_32_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_0_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jacoco_jacoco_maven_plugin_0_8_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jacoco_org_jacoco_core_0_8_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jacoco_org_jacoco_report_0_8_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_javassist_javassist_3_27_0_GA.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jboss_jandex_2_2_3_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_2_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_7_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mariadb_jdbc_mariadb_java_client_2_7_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mariadb_jdbc_mariadb_java_client_2_7_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mockito_mockito_core_3_9_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_9_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_analysis_9_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_commons_9_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_tree_9_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_reflections_reflections_0_9_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_32.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_32.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_aether_aether_api_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_aether_aether_impl_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_aether_aether_spi_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_aether_aether_util_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_plexus_plexus_cipher_1_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_plexus_plexus_sec_dispatcher_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_sisu_sisu_guice_noaop_2_1_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_sisu_sisu_inject_bean_1_4_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_sonatype_sisu_sisu_inject_plexus_1_4_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_config_5_5_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_core_5_5_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_5_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_web_5_5_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_aop_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_aspects_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_beans_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_core_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_expression_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jcl_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_orm_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_test_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_tx_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_web_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_webflux_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_yaml_snakeyaml_1_28.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /chapter1/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/Chapter1Application.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class Chapter1Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(Chapter1Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/controller/DIController.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.controller; 2 | 3 | import com.wikibooks.chapter1.service.MyService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | @RestController 9 | public class DIController { 10 | 11 | MyService myService; 12 | 13 | @Autowired 14 | public DIController(MyService myService) { 15 | this.myService = myService; 16 | } 17 | 18 | @GetMapping("/di/hello") 19 | public String getHello() { 20 | return myService.getHello(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/controller/FieldInjectionController.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.controller; 2 | 3 | import com.wikibooks.chapter1.service.MyService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | public class FieldInjectionController { 9 | 10 | @Autowired 11 | private MyService myService; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/controller/NoDIController.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.controller; 2 | 3 | import com.wikibooks.chapter1.service.MyService; 4 | import com.wikibooks.chapter1.service.MyServiceImpl; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | @RestController 9 | public class NoDIController { 10 | 11 | private MyService service = new MyServiceImpl(); 12 | 13 | @GetMapping("/no-di/hello") 14 | public String getHello() { 15 | return service.getHello(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/controller/SetterInjectionController.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.controller; 2 | 3 | import com.wikibooks.chapter1.service.MyService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | public class SetterInjectionController { 9 | 10 | MyService myService; 11 | 12 | @Autowired 13 | public void setMyService(MyService myService) { 14 | this.myService = myService; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/service/MyService.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.service; 2 | 3 | public interface MyService { 4 | 5 | public String getHello(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter1/src/main/java/com/wikibooks/chapter1/service/MyServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class MyServiceImpl implements MyService { 7 | 8 | @Override 9 | public String getHello() { 10 | return "Hello"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapter1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter1/src/test/java/com/wikibooks/chapter1/Chapter1ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.wikibooks.chapter1; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class Chapter1ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter10_valid_exception/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter10_valid_exception/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter10_valid_exception/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter10_valid_exception/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/ValidExceptionApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ValidExceptionApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(ValidExceptionApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/common/Constants.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.common; 2 | 3 | // 예제 10.17 4 | public class Constants { 5 | 6 | public enum ExceptionClass { 7 | 8 | PRODUCT("Product"); 9 | 10 | private String exceptionClass; 11 | 12 | ExceptionClass(String exceptionClass) { 13 | this.exceptionClass = exceptionClass; 14 | } 15 | 16 | public String getExceptionClass() { 17 | return exceptionClass; 18 | } 19 | 20 | @Override 21 | public String toString() { 22 | return getExceptionClass() + " Exception. "; 23 | } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/config/JpaAuditingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaAuditing; 5 | 6 | @Configuration 7 | @EnableJpaAuditing 8 | public class JpaAuditingConfiguration { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/config/annotation/Telephone.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.config.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | import javax.validation.Constraint; 8 | 9 | // 예제 10.9 10 | @Target(ElementType.FIELD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Constraint(validatedBy = TelephoneValidator.class) 13 | public @interface Telephone { 14 | String message() default "전화번호 형식이 일치하지 않습니다."; 15 | Class[] groups() default {}; 16 | Class[] payload() default {}; 17 | } -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/config/annotation/TelephoneValidator.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.config.annotation; 2 | 3 | import javax.validation.ConstraintValidator; 4 | import javax.validation.ConstraintValidatorContext; 5 | 6 | // 예제 10.8 7 | public class TelephoneValidator implements ConstraintValidator { 8 | 9 | @Override 10 | public boolean isValid(String value, ConstraintValidatorContext context) { 11 | if(value==null){ 12 | return false; 13 | } 14 | return value.matches("01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @ToString 12 | public class ProductResponseDto { 13 | 14 | private Long number; 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/data/group/ValidationGroup1.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.data.group; 2 | 3 | // 예제 10.4 4 | public interface ValidationGroup1 { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/data/group/ValidationGroup2.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.data.group; 2 | 3 | // 예제 10.5 4 | public interface ValidationGroup2 { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/data/repository/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.data.repository; 2 | 3 | 4 | import com.springboot.valid_exception.data.entity.Product; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | public interface ProductRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/java/com/springboot/valid_exception/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception.service; 2 | 3 | 4 | import com.springboot.valid_exception.data.dto.ProductDto; 5 | import com.springboot.valid_exception.data.dto.ProductResponseDto; 6 | 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter10_valid_exception/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 2 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 3 | spring.datasource.username=flature 4 | spring.datasource.password=aroundhub12# 5 | 6 | spring.jpa.hibernate.ddl-auto=create 7 | spring.jpa.show-sql=true 8 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /chapter10_valid_exception/src/test/java/com/springboot/valid_exception/ValidExceptionApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.valid_exception; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ValidExceptionApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter11_actuator/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter11_actuator/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter11_actuator/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter11_actuator/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter11_actuator/src/main/java/com/springboot/actuator/ActuatorApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.actuator; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ActuatorApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(ActuatorApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter11_actuator/src/main/java/com/springboot/actuator/config/actuator/CustomInfoContributor.java: -------------------------------------------------------------------------------- 1 | package com.springboot.actuator.config.actuator; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import org.springframework.boot.actuate.info.Info.Builder; 6 | import org.springframework.boot.actuate.info.InfoContributor; 7 | import org.springframework.stereotype.Component; 8 | 9 | // 예제 11.14 10 | @Component 11 | public class CustomInfoContributor implements InfoContributor { 12 | 13 | @Override 14 | public void contribute(Builder builder) { 15 | Map content = new HashMap<>(); 16 | content.put("code-info", "InfoContributor 구현체에서 정의한 정보입니다."); 17 | builder.withDetail("custom-info-contributor", content); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /chapter11_actuator/src/main/java/com/springboot/actuator/controller/BasicController.java: -------------------------------------------------------------------------------- 1 | package com.springboot.actuator.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | @RestController 8 | @RequestMapping("/basic") 9 | public class BasicController { 10 | 11 | @GetMapping 12 | public String getHello(){ 13 | return "Hello Spring Boot!"; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter11_actuator/src/test/java/com/springboot/actuator/ActuatorApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.actuator; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ActuatorApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter12_rest/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter12_rest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter12_rest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter12_rest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter12_rest/src/main/java/com/springboot/rest/RestApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.rest; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RestApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RestApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter12_rest/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter12_rest/src/test/java/com/springboot/rest/RestApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.rest; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class RestApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter13_security/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter13_security/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter13_security/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter13_security/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/SecurityApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SecurityApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SecurityApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/common/CommonResponse.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.common; 2 | 3 | // 예제 13.27 4 | public enum CommonResponse { 5 | 6 | SUCCESS(0, "Success"), FAIL(-1, "Fail"); 7 | 8 | int code; 9 | String msg; 10 | 11 | CommonResponse(int code, String msg) { 12 | this.code = code; 13 | this.msg = msg; 14 | } 15 | 16 | public int getCode() { 17 | return code; 18 | } 19 | 20 | public String getMsg() { 21 | return msg; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/config/JpaAuditingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaAuditing; 5 | 6 | @Configuration 7 | @EnableJpaAuditing 8 | public class JpaAuditingConfiguration { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/config/PasswordEncoderConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.security.crypto.factory.PasswordEncoderFactories; 6 | import org.springframework.security.crypto.password.PasswordEncoder; 7 | 8 | // 예제 13.26 9 | @Configuration 10 | public class PasswordEncoderConfiguration { 11 | 12 | @Bean 13 | public PasswordEncoder passwordEncoder() { 14 | return PasswordEncoderFactories.createDelegatingPasswordEncoder(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/EntryPointErrorResponse.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | // 예제 13.22 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | public class EntryPointErrorResponse { 14 | 15 | private String msg; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/ProductDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | @Builder 14 | public class ProductDto { 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @ToString 12 | public class ProductResponseDto { 13 | 14 | private Long number; 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/SignInRequestDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | @Builder 14 | public class SignInRequestDto { 15 | 16 | private String id; 17 | 18 | private String password; 19 | 20 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/SignInResultDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | // 예제 13.30 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @ToString 14 | public class SignInResultDto extends SignUpResultDto { 15 | 16 | private String token; 17 | 18 | @Builder 19 | public SignInResultDto(boolean success, int code, String msg, String token) { 20 | super(success, code, msg); 21 | this.token = token; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/SignUpRequestDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | @Builder 14 | public class SignUpRequestDto { 15 | 16 | private String id; 17 | 18 | private String password; 19 | 20 | private String name; 21 | 22 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/dto/SignUpResultDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | // 예제 13.29 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | public class SignUpResultDto { 14 | 15 | private boolean success; 16 | 17 | private int code; 18 | 19 | private String msg; 20 | 21 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/data/repository/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.data.repository; 2 | 3 | import com.springboot.security.data.entity.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 13.7 7 | public interface UserRepository extends JpaRepository { 8 | 9 | User getByUid(String uid); 10 | 11 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.service; 2 | 3 | 4 | import com.springboot.security.data.dto.ProductDto; 5 | import com.springboot.security.data.dto.ProductResponseDto; 6 | 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/java/com/springboot/security/service/SignService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security.service; 2 | 3 | 4 | import com.springboot.security.data.dto.SignInResultDto; 5 | import com.springboot.security.data.dto.SignUpResultDto; 6 | 7 | // 예제 13.24 8 | public interface SignService { 9 | 10 | SignUpResultDto signUp(String id, String password, String name, String role); 11 | 12 | SignInResultDto signIn(String id, String password) throws RuntimeException; 13 | 14 | } -------------------------------------------------------------------------------- /chapter13_security/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 2 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 3 | spring.datasource.username=flature 4 | spring.datasource.password=aroundhub12# 5 | 6 | spring.jpa.open-in-view=false 7 | spring.jpa.hibernate.ddl-auto=create 8 | spring.jpa.show-sql=true 9 | spring.jpa.properties.hibernate.format_sql=true 10 | 11 | ## Security 관련 (예제 13.11) 12 | springboot.jwt.secret=flature!@# -------------------------------------------------------------------------------- /chapter13_security/src/test/java/com/springboot/security/SecurityApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.security; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SecurityApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter2_design_pattern/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.springboot.design_pattern 8 | design_pattern 9 | 1.0.0 10 | 11 | 12 | 11 13 | 11 14 | 15 | 16 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/ACustomFactory.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public class ACustomFactory implements AbstractFactory{ 4 | 5 | public AbstractObject createObject() { 6 | return new AObject(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/AObject.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public class AObject implements AbstractObject{ 4 | 5 | public void print() { 6 | System.out.println("A Object가 사용되었습니다."); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/AbstractFactory.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public interface AbstractFactory { 4 | 5 | AbstractObject createObject(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/AbstractObject.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public interface AbstractObject { 4 | 5 | void print(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/BCustomFactory.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public class BCustomFactory implements AbstractFactory{ 4 | 5 | public AbstractObject createObject() { 6 | return new BObject(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/BObject.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public class BObject implements AbstractObject{ 4 | 5 | public void print() { 6 | System.out.println("B Object가 호출되었습니다."); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/abstract_factory/Main.java: -------------------------------------------------------------------------------- 1 | package design_pattern.abstract_factory; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args){ 6 | AbstractFactory abstractFactory = new ACustomFactory(); 7 | AbstractObject abstractObject = abstractFactory.createObject(); 8 | abstractObject.print(); 9 | 10 | System.out.println("==========================="); 11 | 12 | abstractFactory = new BCustomFactory(); 13 | abstractObject = abstractFactory.createObject(); 14 | abstractObject.print(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/AirConditioner.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public class AirConditioner implements Electronic220v{ 4 | 5 | @Override 6 | public void power220vOn() { 7 | System.out.println("에어컨 전원 On -- 220v"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/Computer.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public class Computer implements Electronic220v{ 4 | 5 | @Override 6 | public void power220vOn() { 7 | System.out.println("컴퓨터 전원 On -- 220v"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/Electronic110v.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public interface Electronic110v { 4 | 5 | void power110vOn(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/Electronic220v.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public interface Electronic220v { 4 | 5 | void power220vOn(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/PowerAdapter.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public class PowerAdapter implements Electronic110v{ 4 | 5 | public Electronic220v electronic220v; 6 | 7 | public PowerAdapter(Electronic220v electronic220v){ 8 | this.electronic220v = electronic220v; 9 | } 10 | 11 | @Override 12 | public void power110vOn() { 13 | electronic220v.power220vOn(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/adapter/Radio.java: -------------------------------------------------------------------------------- 1 | package design_pattern.adapter; 2 | 3 | public class Radio implements Electronic110v{ 4 | 5 | @Override 6 | public void power110vOn() { 7 | System.out.println("라디오 전원 On -- 110v"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/proxy/Main.java: -------------------------------------------------------------------------------- 1 | package design_pattern.proxy; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args){ 6 | Service service = new Proxy(); 7 | service.print(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/proxy/Proxy.java: -------------------------------------------------------------------------------- 1 | package design_pattern.proxy; 2 | 3 | public class Proxy implements Service{ 4 | 5 | ServiceImpl service; 6 | 7 | @Override 8 | public void print() { 9 | System.out.println("프록시를 통해 실행"); 10 | service = new ServiceImpl(); 11 | service.print(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/proxy/Service.java: -------------------------------------------------------------------------------- 1 | package design_pattern.proxy; 2 | 3 | public interface Service { 4 | 5 | void print(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/proxy/ServiceImpl.java: -------------------------------------------------------------------------------- 1 | package design_pattern.proxy; 2 | 3 | public class ServiceImpl implements Service{ 4 | 5 | @Override 6 | public void print() { 7 | System.out.println("내용을 출력합니다."); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/singleton/Main.java: -------------------------------------------------------------------------------- 1 | package design_pattern.singleton; 2 | 3 | public class Main { 4 | public static void main(String[] args){ 5 | 6 | MyObject myObject1 = new MyObject("클래스 1"); 7 | myObject1.print(); 8 | 9 | MyObject myObject2 = new MyObject("클래스 2"); 10 | myObject2.print(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/singleton/MyObject.java: -------------------------------------------------------------------------------- 1 | package design_pattern.singleton; 2 | 3 | public class MyObject { 4 | 5 | private final String className; 6 | 7 | public MyObject(String className) { 8 | this.className = className; 9 | } 10 | 11 | public void print() { 12 | SingletonObject singletonObject = SingletonObject.getObject(); 13 | System.out.print("MyObject : " + className + ", "); 14 | singletonObject.print(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapter2_design_pattern/src/main/java/design_pattern/singleton/SingletonObject.java: -------------------------------------------------------------------------------- 1 | package design_pattern.singleton; 2 | 3 | public class SingletonObject { 4 | 5 | private static SingletonObject singletonObject = null; 6 | 7 | private SingletonObject() { 8 | } 9 | 10 | public synchronized static SingletonObject getObject() { 11 | if (singletonObject == null) { 12 | singletonObject = new SingletonObject(); 13 | } 14 | return singletonObject; 15 | } 16 | 17 | public void print() { 18 | System.out.println("Singleton Class : " + singletonObject.hashCode()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /chapter4_hello/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter4_hello/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter4_hello/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter4_hello/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter4_hello/src/main/java/com/springboot/hello/HelloApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.hello; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class HelloApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(HelloApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter4_hello/src/main/java/com/springboot/hello/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.springboot.hello.controller; 2 | 3 | import org.springframework.web.bind.annotation.RequestMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | // 예제 4.1 7 | @RestController 8 | public class HelloController { 9 | 10 | @RequestMapping("/hello") 11 | public String hello() { 12 | return "Hello World"; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter4_hello/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter4_hello/src/test/java/com/springboot/hello/Chapter4HelloApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.hello; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class Chapter4HelloApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter5_api/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter5_api/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter5_api/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter5_api/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter5_api/src/main/java/com/springboot/api/ApiApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.api; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ApiApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(ApiApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter5_api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /chapter5_api/src/test/java/com/springboot/api/Chapter5ApiApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.api; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class Chapter5ApiApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter6_jpa/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter6_jpa/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter6_jpa/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter6_jpa/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(JpaApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/data/dao/ProductDAO.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa.data.dao; 2 | 3 | import com.springboot.jpa.data.entity.Product; 4 | 5 | // 예제 6.9 6 | public interface ProductDAO { 7 | 8 | Product insertProduct(Product product); 9 | 10 | Product selectProduct(Long number); 11 | 12 | Product updateProductName(Long number, String name) throws Exception; 13 | 14 | void deleteProduct(Long number) throws Exception; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/data/dto/ProductDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | // 예제 6.19 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @ToString 14 | @Builder 15 | public class ProductDto { 16 | 17 | private String name; 18 | 19 | private int price; 20 | 21 | private int stock; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | // 예제 6.20 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | public class ProductResponseDto { 14 | 15 | private Long number; 16 | 17 | private String name; 18 | 19 | private int price; 20 | 21 | private int stock; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/data/repository/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa.data.repository; 2 | 3 | import com.springboot.jpa.data.entity.Product; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 6.7 7 | public interface ProductRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter6_jpa/src/main/java/com/springboot/jpa/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa.service; 2 | 3 | import com.springboot.jpa.data.dto.ProductDto; 4 | import com.springboot.jpa.data.dto.ProductResponseDto; 5 | 6 | // 예제 6.21 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter6_jpa/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | ## 예제 6.5 2 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 3 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 4 | spring.datasource.username=flature 5 | spring.datasource.password=aroundhub12# 6 | 7 | spring.jpa.hibernate.ddl-auto=update 8 | spring.jpa.show-sql=true 9 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /chapter6_jpa/src/test/java/com/springboot/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter7_test/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter7_test/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter7_test/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter7_test/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter7_test/src/main/java/com/springboot/test/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class TestApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(TestApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter7_test/src/main/java/com/springboot/test/data/dto/ProductDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | // 예제 7.9 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @ToString 14 | @Builder 15 | public class ProductDto { 16 | 17 | private String name; 18 | 19 | private int price; 20 | 21 | private int stock; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /chapter7_test/src/main/java/com/springboot/test/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @ToString 12 | public class ProductResponseDto { 13 | 14 | private Long number; 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter7_test/src/main/java/com/springboot/test/data/repository/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test.data.repository; 2 | 3 | import com.springboot.test.data.entity.Product; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ProductRepository extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /chapter7_test/src/main/java/com/springboot/test/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test.service; 2 | 3 | 4 | import com.springboot.test.data.dto.ProductDto; 5 | import com.springboot.test.data.dto.ProductResponseDto; 6 | 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter7_test/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 2 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 3 | spring.datasource.username=flature 4 | spring.datasource.password=aroundhub12# 5 | 6 | spring.jpa.hibernate.ddl-auto=create 7 | spring.jpa.show-sql=true 8 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /chapter7_test/src/test/java/com/springboot/test/TestApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class TestApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter8_advanced_jpa/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter8_advanced_jpa/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/AdvancedJpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | // 예제 8.40 7 | //@EnableJpaAuditing 8 | @SpringBootApplication 9 | public class AdvancedJpaApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(AdvancedJpaApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/config/JpaAuditingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaAuditing; 5 | 6 | // 예제 8.41 7 | @Configuration 8 | @EnableJpaAuditing 9 | public class JpaAuditingConfiguration { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/config/QueryDSLConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.config; 2 | 3 | import com.querydsl.jpa.impl.JPAQueryFactory; 4 | import javax.persistence.EntityManager; 5 | import javax.persistence.PersistenceContext; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | // 예제 8.29 10 | @Configuration 11 | public class QueryDSLConfiguration { 12 | 13 | @PersistenceContext 14 | EntityManager entityManager; 15 | 16 | @Bean 17 | public JPAQueryFactory jpaQueryFactory(){ 18 | return new JPAQueryFactory(entityManager); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/dto/ProductDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | @Builder 14 | public class ProductDto { 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @ToString 12 | public class ProductResponseDto { 13 | 14 | private Long number; 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/entity/Product.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.entity; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | // 예제 8.43 8 | @Entity 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | @ToString(callSuper = true) 13 | @EqualsAndHashCode(callSuper = true) 14 | @Table(name = "product") 15 | public class Product extends BaseEntity { 16 | 17 | @Id 18 | @GeneratedValue(strategy = GenerationType.IDENTITY) 19 | private Long number; 20 | 21 | @Column(nullable = false) 22 | private String name; 23 | 24 | @Column(nullable = false) 25 | private Integer price; 26 | 27 | @Column(nullable = false) 28 | private Integer stock; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/repository/QProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.repository; 2 | 3 | import com.springboot.advanced_jpa.data.entity.Product; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.querydsl.QuerydslPredicateExecutor; 6 | 7 | // 예제 8.31 8 | public interface QProductRepository extends JpaRepository, 9 | QuerydslPredicateExecutor { 10 | 11 | } 12 | 13 | // Reference (https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/querydsl/QuerydslPredicateExecutor.html) 14 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/repository/support/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.repository.support; 2 | 3 | import com.springboot.advanced_jpa.data.entity.Product; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.stereotype.Repository; 6 | 7 | // 예제 8.38 8 | // repository 패키지 안에 있는 ProductRepository와 이름이 동일하여 Bean 생성 충돌이 발생하므로 Bean 이름을 지정해줘야함 9 | @Repository("productRepositorySupport") 10 | public interface ProductRepository extends JpaRepository, ProductRepositoryCustom { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/data/repository/support/ProductRepositoryCustom.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.data.repository.support; 2 | 3 | import com.springboot.advanced_jpa.data.entity.Product; 4 | import java.util.List; 5 | 6 | /** 7 | * 필요한 쿼리를 작성할 메소드를 정의하는 인터페이스 8 | * 예제 8.36 9 | */ 10 | public interface ProductRepositoryCustom { 11 | 12 | List findByName(String name); 13 | 14 | } -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/java/com/springboot/advanced_jpa/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa.service; 2 | 3 | 4 | import com.springboot.advanced_jpa.data.dto.ProductDto; 5 | import com.springboot.advanced_jpa.data.dto.ProductResponseDto; 6 | 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 2 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 3 | spring.datasource.username=flature 4 | spring.datasource.password=aroundhub12# 5 | 6 | spring.jpa.hibernate.ddl-auto=create 7 | spring.jpa.show-sql=true 8 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /chapter8_advanced_jpa/src/test/java/com/springboot/advanced_jpa/AdvancedJpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.advanced_jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AdvancedJpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter9_relationship/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /chapter9_relationship/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/chapter9_relationship/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /chapter9_relationship/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/RelationshipApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RelationshipApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RelationshipApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/config/JpaAuditingConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaAuditing; 5 | 6 | @Configuration 7 | @EnableJpaAuditing 8 | public class JpaAuditingConfiguration { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/config/QueryDSLConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.config; 2 | 3 | import com.querydsl.jpa.impl.JPAQueryFactory; 4 | import javax.persistence.EntityManager; 5 | import javax.persistence.PersistenceContext; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | // 예제 7.36 10 | @Configuration 11 | public class QueryDSLConfiguration { 12 | 13 | @PersistenceContext 14 | EntityManager entityManager; 15 | 16 | @Bean 17 | public JPAQueryFactory jpaQueryFactory(){ 18 | return new JPAQueryFactory(entityManager); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/dto/ProductDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @ToString 13 | @Builder 14 | public class ProductDto { 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/dto/ProductResponseDto.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.ToString; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @ToString 12 | public class ProductResponseDto { 13 | 14 | private Long number; 15 | 16 | private String name; 17 | 18 | private int price; 19 | 20 | private int stock; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/entity/ProductDetail.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.entity; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | // 예제 9.1 8 | @Entity 9 | @Table(name = "product_detail") 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | @ToString(callSuper = true) 14 | @EqualsAndHashCode(callSuper = true) 15 | public class ProductDetail extends BaseEntity { 16 | 17 | @Id 18 | @GeneratedValue(strategy = GenerationType.IDENTITY) 19 | private Long id; 20 | 21 | private String description; 22 | 23 | @OneToOne //(optional=false) 예제 9.5 24 | @JoinColumn(name = "product_number") 25 | private Product product; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/CategoryRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository; 2 | 3 | import com.springboot.relationship.data.entity.Category; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 9.18 7 | public interface CategoryRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/ProducerRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository; 2 | 3 | import com.springboot.relationship.data.entity.Producer; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 9.21 7 | public interface ProducerRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/ProductDetailRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository; 2 | 3 | import com.springboot.relationship.data.entity.ProductDetail; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 9.2 7 | public interface ProductDetailRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/ProviderRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository; 2 | 3 | import com.springboot.relationship.data.entity.Provider; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | // 예제 9.11 7 | public interface ProviderRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/QProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository; 2 | 3 | 4 | import com.springboot.relationship.data.entity.Product; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.querydsl.QuerydslPredicateExecutor; 7 | 8 | public interface QProductRepository extends JpaRepository, 9 | QuerydslPredicateExecutor { 10 | 11 | } 12 | 13 | // Reference (https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/querydsl/QuerydslPredicateExecutor.html) 14 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/support/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository.support; 2 | 3 | 4 | import com.springboot.relationship.data.entity.Product; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | // repository 패키지 안에 있는 ProductRepository와 이름이 동일하여 Bean 생성 충돌이 발생하므로 Bean 이름을 지정해줘야함 9 | @Repository("productRepositorySupport") 10 | public interface ProductRepository extends JpaRepository, ProductRepositoryCustom { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/data/repository/support/ProductRepositoryCustom.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.data.repository.support; 2 | 3 | 4 | import com.springboot.relationship.data.entity.Product; 5 | import java.util.List; 6 | 7 | /** 8 | * 필요한 쿼리를 작성할 메소드를 정의하는 인터페이스 9 | */ 10 | public interface ProductRepositoryCustom { 11 | 12 | List findByName(String name); 13 | 14 | } -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/service/ProductDetailService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.service; 2 | 3 | public interface ProductDetailService { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/service/ProductService.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.service; 2 | 3 | 4 | import com.springboot.relationship.data.dto.ProductDto; 5 | import com.springboot.relationship.data.dto.ProductResponseDto; 6 | 7 | public interface ProductService { 8 | 9 | ProductResponseDto getProduct(Long number); 10 | 11 | ProductResponseDto saveProduct(ProductDto productDto); 12 | 13 | ProductResponseDto changeProductName(Long number, String name) throws Exception; 14 | 15 | void deleteProduct(Long number) throws Exception; 16 | 17 | } -------------------------------------------------------------------------------- /chapter9_relationship/src/main/java/com/springboot/relationship/service/impl/ProductDetailServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship.service.impl; 2 | 3 | import com.springboot.relationship.service.ProductDetailService; 4 | 5 | public class ProductDetailServiceImpl implements ProductDetailService { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /chapter9_relationship/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driverClassName=org.mariadb.jdbc.Driver 2 | spring.datasource.url=jdbc:mariadb://localhost:3306/springboot 3 | spring.datasource.username=flature 4 | spring.datasource.password=aroundhub12# 5 | 6 | spring.jpa.hibernate.ddl-auto=create 7 | spring.jpa.show-sql=true 8 | spring.jpa.properties.hibernate.format_sql=true -------------------------------------------------------------------------------- /chapter9_relationship/src/test/java/com/springboot/relationship/RelationshipApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.relationship; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class RelationshipApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/cover.jpg -------------------------------------------------------------------------------- /serverBox/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /serverBox/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wikibook/springboot/5ef2089b95ee7b6d8b70793c9cc48d6ab879d41c/serverBox/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /serverBox/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /serverBox/src/main/java/com/springboot/serverbox/ServerBoxApplication.java: -------------------------------------------------------------------------------- 1 | package com.springboot.serverbox; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ServerBoxApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(ServerBoxApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /serverBox/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=9090 2 | -------------------------------------------------------------------------------- /serverBox/src/test/java/com/springboot/serverbox/ServerBoxApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springboot.serverbox; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ServerBoxApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | --------------------------------------------------------------------------------