springboot — правило для GitHub Copilot: Spring Boot по стандартам
Правило задаёт Copilot стиль кода для Spring Boot: внедрение зависимостей, конфигурация, логирование и проверка сборки.
.github/instructions/springboot.instructions.mdЧто делает springboot
Файл-правило подключается к GitHub Copilot и применяется к файлам **/*.java и **/*.kt. Внутри — набор инструкций по разработке на Spring Boot: конструкторное внедрение зависимостей с полями private final, внешняя конфигурация через application.yml, профили для dev, test и prod, привязка настроек через @ConfigurationProperties. Секреты выносятся в переменные окружения или системы управления секретами.
Структура кода описана по домену, а не по слоям. Контроллеры остаются тонкими, бизнес-логика уходит в классы с @Service, сервисы не хранят состояние. Логирование — только через SLF4J с параметризованными сообщениями, без System.out.println() и конкретных реализаций вроде Logback или Log4j2. Для защиты от SQL-инъекций правило требует Spring Data JPA или NamedParameterJdbcTemplate, а тела запросов и параметры проверяются аннотациями JSR-380 (@NotNull, @Size) вместе с BindingResult.
После правок правило просит убедиться, что проект собирается: mvn clean package для Maven или ./gradlew build для Gradle, тесты должны проходить в рамках сборки. Отдельная таблица сводит команды запуска, сборки, тестов и упаковки в JAR или контейнерный образ. Без установленного Maven или Gradle-обёртки в проекте эти шаги не сработают.
Какие задачи решает
- задать Copilot единый стиль кода для Spring Boot
- перевести конфигурацию на
application.ymlи профили - вынести секреты из кода в переменные окружения
- заменить
System.out.println()на параметризованный SLF4J - проверить сборку и тесты после правок
Примеры запросов агенту
- Добавь новый REST-контроллер для заказов по правилам springboot
- Переведи конфигурацию этого сервиса на
application.ymlс профилями dev и prod - Проверь, что после правок проект собирается через
./gradlew build
Как установить springboot
Вручную: положить файлы
.github/instructions/springboot.instructions.mdПоле applyTo задаёт, к каким файлам применять
Вручную: положить файлы
.claude/rules/springboot.mdПоле paths во frontmatter ограничивает файлы: applyTo из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.cursor/rules/springboot.mdcВо frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится
Вручную: положить файлы
.devin/rules/springboot.mdВручную: положить файлы
.clinerules/springboot.mdПо шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать
Вопросы о springboot
Как установить springboot в GitHub Copilot?
Скопируйте файл правила в .github/instructions/springboot.instructions.md в корне репозитория. Copilot подхватит его для файлов **/*.java и **/*.kt.
Что делает springboot?
Это правило для GitHub Copilot с инструкциями по разработке на Spring Boot: внедрение зависимостей, конфигурация, структура пакетов, логирование, безопасность ввода и проверка сборки.
На какие файлы распространяется правило?
Область задана в applyTo: **/*.java, **/*.kt. На другие файлы инструкции не действуют.
Исходный текст
springboot.instructions.md · MIT
---
description: 'Guidelines for building Spring Boot base applications'
applyTo: '**/*.java, **/*.kt'
---
# Spring Boot Development
## General Instructions
- Make only high confidence suggestions when reviewing code changes.
- Write code with good maintainability practices, including comments on why certain design decisions were made.
- Handle edge cases and write clear exception handling.
- For libraries or external dependencies, mention their usage and purpose in comments.
## Spring Boot Instructions
### Dependency Injection
- Use constructor injection for all required dependencies.
- Declare dependency fields as `private final`.
### Configuration
- Use YAML files (`application.yml`) for externalized configuration.
- Environment Profiles: Use Spring profiles for different environments (dev, test, prod)
- Configuration Properties: Use @ConfigurationProperties for type-safe configuration binding
- Secrets Management: Externalize secrets using environment variables or secret management systems
### Code Organization
- Package Structure: Organize by feature/domain rather than by layer
- Separation of Concerns: Keep controllers thin, services focused, and repositories simple
- Utility Classes: Make utility classes final with private constructors
### Service Layer
- Place business logic in `@Service`-annotated classes.
- Services should be stateless and testable.
- Inject repositories via the constructor.
- Service method signatures should use domain IDs or DTOs, not expose repository entities directly unless necessary.
### Logging
- Use SLF4J for all logging (`private static final Logger logger = LoggerFactory.getLogger(MyClass.class);`).
- Do not use concrete implementations (Logback, Log4j2) or `System.out.println()` directly.
- Use parameterized logging: `logger.info("User {} logged in", userId);`.
### Security & Input Handling
- Use parameterized queries | Always use Spring Data JPA or `NamedParameterJdbcTemplate` to prevent SQL injection.
- Validate request bodies and parameters using JSR-380 (`@NotNull`, `@Size`, etc.) annotations and `BindingResult`
## Build and Verification
- After adding or modifying code, verify the project continues to build successfully.
- If the project uses Maven, run `mvn clean package`.
- If the project uses Gradle, run `./gradlew build` (or `gradlew.bat build` on Windows).
- Ensure all tests pass as part of the build.
## Useful Commands
| Gradle Command | Maven Command | Description |
|:--------------------------|:----------------------------------|:----------------------------------------------|
| `./gradlew bootRun` |`./mvnw spring-boot:run` | Run the application. |
| `./gradlew build` |`./mvnw package` | Build the application. |
| `./gradlew test` |`./mvnw test` | Run tests. |
| `./gradlew bootJar` |`./mvnw spring-boot:repackage` | Package the application as a JAR. |
| `./gradlew bootBuildImage`|`./mvnw spring-boot:build-image` | Package the application as a container image. |
© github · MIT · github/awesome-copilot