Backend · ChatGPT and the OpenAI API
Spring Boot 4 & Java 25 OpenAI Custom Instructions
Custom instructions for ChatGPT and the OpenAI API, for Spring Boot 4 & Java 25 work.
- Path
- prompts/openai-custom-instructions.md
- Loads
- Pasted or sent per request
- Format
- Markdown (.md)
- Used by
- ChatGPT and the OpenAI API
What this file tells the agent
Custom instructions in ChatGPT, a Project or the API tell the model your Spring Boot 4 & Java 25 conventions up front: concise diffs, validation at the boundaries and explicit error handling.
- Use jakarta.* packages for persistence, validation, and servlets; ban legacy javax.* imports.
- Represent immutable request/response DTOs using native Java Records with Jakarta validation annotations.
- Enable virtual threads (spring.threads.virtual.enabled=true) for high-throughput blocking I/O.
- Configure Spring Security using the modern SecurityFilterChain bean approach; never extend deprecated WebSecurityConfigurerAdapter.
- Avoid N+1 queries in Spring Data JPA: use @EntityGraph or JOIN FETCH JPQL queries for relational fetches.
Code to avoid, and what to write instead
The rule steers the agent away from the left and toward the right.
// Discouraged: Legacy javax namespace, verbose POJO with setters, mutable entity exposure
import javax.persistence.*; // Obsolete since Spring Boot 3; use jakarta.persistence
public class BadOrderDTO {
private String customerId;
public void setCustomerId(String id) { this.customerId = id; }
}package com.example.demo.order;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Positive;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
public record CreateOrderRequest(
@NotBlank String customerId,
@Positive BigDecimal amount
) {}
public record OrderResponse(Long id, String customerId, BigDecimal amount) {}
@RestController
@RequestMapping("/api/v1/orders")
public class OrderController {
private final OrderService orderService;
public OrderController(OrderService orderService) {
this.orderService = orderService;
}
@PostMapping
public ResponseEntity<OrderResponse> create(@RequestBody CreateOrderRequest request) {
OrderResponse response = orderService.processOrder(request);
return ResponseEntity.ok(response);
}
}Install it in one command
- 01
Go to your project root
The file goes at prompts/openai-custom-instructions.md, relative to the root.
- 02
Download the file
Run the command on the right. It downloads this preset and writes the file.
- 03
Make sure it gets used
Nothing loads this file automatically. Paste it into ChatGPT custom instructions, a Project or a custom GPT, or send it as instructions in the API.
$ mkdir -p "prompts" && curl -fsSL "https://www.devscratchpad.tech/api/raw/openai-instructions/spring-boot-4" -o "prompts/openai-custom-instructions.md"
writes prompts/openai-custom-instructions.md
prompts/openai-custom-instructions.md
To write the file from your own code instead, use Read your code or Convert Legacy Rules in the editor above.
More for Spring Boot 4 & Java 25
Questions
- Where do I apply these OpenAI instructions?
- Paste it into ChatGPT custom instructions (Settings > Personalization), a Project's instructions or a custom GPT, or send it as instructions in the OpenAI API.
- Which OpenAI models can use these instructions?
- Any current model in ChatGPT or the API. The instructions are plain text, so they work the same way whichever model you pick.