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