• 1 QUICK START
    • 1.1 Install
      • 1.1.1 Java
      • 1.1.2 IntelliJ IDEA
      • 1.2 Create Project with IntelliJ
      • 1.2.1 Community Edition (free)
      • 1.2.2 Ultimate Edition (paid)
    • 1.3 Application
      • 1.3.1 Run
      • 1.3.2 Deploy
  • 2 MAIN TERMS
    • 2.1 Project
      • 2.1.1 Spring Boot Starters
      • 2.1.2 Spring Initializer
      • 2.1.3 Spring Boot Project
    • 2.2 Object Types
      • 2.2.1 Entity Object (DO)
      • 2.2.2 Data Access Object (DAO)
      • 2.2.3 Data Transfer Object (DTO)
      • 2.2.4 Data Converter Object (DCO)
      • 2.2.5 Controller Object (CO)
    • 2.3 Controller
      • 2.3.1 @Controller
      • 2.3.2 @RestController
    • 2.4 Endpoint
      • 2.4.1 @RequestMapping
      • 2.4.10 Return - View - JSP
      • 2.4.11 Download - Excel
      • 2.4.12 Download - Excel - With Header
      • 2.4.2 @GetMapping
      • 2.4.3 @PostMapping
      • 2.4.4 @RequestParam
      • 2.4.5 @PathVariable
      • 2.4.6 Return - Data - Text
      • 2.4.7 Return - Data - JSON
      • 2.4.8 Return - View - HTML
      • 2.4.9 Return - View - Thymeleaf
    • 2.5 Entity
      • 2.5.1 Properties - Public
      • 2.5.10 @Transient
      • 2.5.11 Recommended Annotations
      • 2.5.2 Properties - Private - Getters & Setters
      • 2.5.3 Properties - Private - Getters & Constructor
      • 2.5.4 @Entity
      • 2.5.5 @Id
      • 2.5.6 @IdClass
      • 2.5.7 @EmbeddedId
      • 2.5.8 @Table
      • 2.5.9 @Column
    • 2.6 Databases
      • 2.6.1 H2
      • 2.6.2 MySQL
      • 2.6.3 PostgreSQL
      • 2.6.4 MongoDB
    • 2.7 Relationships
      • 2.7.1 @OneToOne - Join Table
      • 2.7.2 @OneToOne - Foreign Key
      • 2.7.3 @OneToMany - Join Table
      • 2.7.4 @OneToMany - Foreign Key
      • 2.7.5 @ManyToMany - Join Table
    • 2.8 Service
      • 2.8.1 Business Logic - Inside Controller
      • 2.8.2 Business Logic - Inside Service
      • 2.8.3 Instantiate Service - Using Class
      • 2.8.4 Instantiate Service - Using Class - @Autowired
      • 2.8.5 Instantiate Service - Using Interface
      • 2.8.6 Instantiate Service - Using Interface - @Autowired
    • 2.9 @Autowired
      • 2.9.1 Manually
      • 2.9.2 Location - Property
      • 2.9.3 Location - Setter
      • 2.9.4 Location - Constructor
      • 2.9.5 Interface - @Primary
      • 2.9.6 Interface - @Qualifier
      • 2.9.7 Interface - @Profile
    • 2.10 DTO - Serialize
      • 2.10.1 @ResponseBody
      • 2.10.2 @JsonSerialize
    • 2.11 DTO - Deserialize
      • 2.11.1 From Request Parameters - Using Setters
      • 2.11.10 From JSON - @JsonFormat
      • 2.11.11 From JSON - @JsonDeserialize
      • 2.11.12 From JSON Array
      • 2.11.2 From Request Parameters - Using Setters - Customized
      • 2.11.3 From Request Parameters - Using Map
      • 2.11.4 From Request Parameters - Using Map - Customize Setter
      • 2.11.5 From JSON - @RequestBody - Properties
      • 2.11.6 From JSON - @RequestBody - Setters
      • 2.11.7 From JSON - @RequestBody - Constructor
      • 2.11.8 From JSON - @RequestBody - Constructor - Custom
      • 2.11.9 From JSON - @JsonProperty
    • 2.12 DTO to Entity
      • 2.12.1 Manually
      • 2.12.2 JMapper - Using Annotations
    • 2.13 Profiles
      • 2.13.1 Assign Profile - To Class
      • 2.13.2 Assign Profile - To application.properties
      • 2.13.3 Specify Active Profile - Through Run Configuration
      • 2.13.4 Specify Active Profile - Through application.properties
    • 2.14 application.properties
      • 2.14.1 Read Property - From Controller
      • 2.14.2 Read Property - From HTML
      • 2.14.3 Built-in Properties
    • 2.15 DB Queries
      • 2.15.1 Native Query
      • 2.15.2 JPQL