Forever Young
- Статус
- Оффлайн
- Регистрация
- 11 Июл 2024
- Сообщения
- 234
- Реакции
- 3
Сап плотный братва, короче сегодня у нас Аннотации
@Entity
Указывает, что класс является сущностью в контексте ORM.
@Table
Задает имя таблицы в базе данных.
@Autowired
Используется в Spring Framework для автоматического внедрения зависимостей.
@RequestMapping
Применяется в Spring для определения маршрутов HTTP-запросов к контроллерам.
@test
Аннотация из JUnit, указывающая, что метод является тестом.
@Before
Обозначает метод, который будет выполнен перед каждым тестом в классе.
@After
Метод, который будет выполнен после каждого теста.
@override
Эта аннотация говорит компилятору, что ты переопределяешь метод суперкласса. Если что-то не так, он сразу даст знать.
@SuppressWarnings
Если компилятор начинает ругаться на что-то, но ты знаешь, что это нормально, можно использовать эту аннотацию, чтобы отключить предупреждения.
@value
Если ты в Spring и нужно привязать значения из конфигурации, используешь @value. Очень удобно!
@Component
Эта аннотация говорит Spring, что класс — это компонент. Он его сам найдет и зарегистрирует.
@service
Если у тебя есть бизнес-логика, вот сюда можно её запихнуть. @service — это для сервисов.
@repository
Для классов, которые работают с базой данных, используем @repository. Это помогает Spring понять, что делать с данными.
@Transactional
Когда ты хочешь, чтобы метод выполнялся в рамках транзакции, добавляй эту аннотацию. Очень удобно для работы с базами.
@configuration
Эта аннотация обозначает, что класс содержит бины для Spring. Полезно, если ты настраиваешь приложение.
@RequestBody
Используется в Spring для получения данных из тела HTTP-запроса. Полезно в REST API.
@ResponseBody
Позволяет вернуть данные прямо в теле ответа. Часто используется с контроллерами.
@PathVariable
Используется в Spring для извлечения переменных из URL. Удобно для динамических маршрутов.
@Scheduled
Позволяет выполнять методы по расписанию. Очень полезно для фоновых задач.
@async
Позволяет выполнять методы асинхронно. Классно для долгих операций, чтобы не блокировать основной поток.
@PostConstruct
Эта аннотация говорит, что метод нужно выполнить сразу после создания бина. Полезно для инициализации.
@PreDestroy
Применяется для указания метода, который должен выполниться перед уничтожением бина.
@Transactional(readOnly = true)
Если метод только читает данные из базы, можно добавить это для оптимизации.
@Valid
Используется для проверки корректности данных, например, в Spring при получении объектов.
@NotNull
Часто используется вместе с @Valid для указания, что поле не должно быть null.
@Size
Эта аннотация помогает задать ограничения на длину строки.
@JsonProperty
Используется для настройки сериализации/десериализации JSON в Jackson.
@JsonIgnore
Позволяет игнорировать поле при сериализации/десериализации.
@ConfigurationProperties
Используется для привязки свойств конфигурации к классу.
@Autowired(required = false)
Если зависимость не обязательна, можно использовать этот вариант.
@RequestParam
Для получения параметров из HTTP-запроса. Удобно для GET-запросов.
@ResponseStatus
Указывает статус HTTP-ответа. Полезно для обработки ошибок.
@ControllerAdvice
Обрабатывает исключения глобально в приложении. Удобно для централизованной обработки ошибок.
@ExceptionHandler
Обрабатывает определенные исключения в контроллерах. Можно указать, какие именно исключения обрабатывать.
@RequestMapping(method = RequestMethod.POST)
Для указания, что метод контроллера обрабатывает POST-запросы.
@RestController
Это просто комбинированная аннотация @Controller и @ResponseBody. Удобно для RESTful веб-сервисов.
@Crossorigin
Позволяет настраивать CORS (Cross-Origin Resource Sharing). Полезно, если у тебя фронт и бэк на разных доменах.
@PROFILE
Позволяет настраивать, какие бины активны в зависимости от профиля среды.
@ComponentScan
Используется для указания пакетов, в которых нужно искать компоненты.
@bean
Позволяет объявлять бины в конфигурационном классе.
@Conditional
Эта аннотация используется для условной регистрации бинов. Полезно для гибкой настройки.
@Scheduled(cron = "0 0 * * * ?")
Для задания расписания с помощью cron-выражений.
@Entity
Указывает, что класс является сущностью в контексте ORM.
Код:
@Entity
public class User {
// поля и методы
}
@Table
Задает имя таблицы в базе данных.
Код:
@Entity
@Table(name = "users")
public class User {
// поля и методы
}
@Autowired
Используется в Spring Framework для автоматического внедрения зависимостей.
Код:
@Autowired
private UserService userService;
@RequestMapping
Применяется в Spring для определения маршрутов HTTP-запросов к контроллерам.
Код:
@RestController
@RequestMapping("/api/users")
public class UserController {
// обработчики запросов
}
@test
Аннотация из JUnit, указывающая, что метод является тестом.
Код:
@Test
public void testUserCreation() {
// код теста
}
@Before
Обозначает метод, который будет выполнен перед каждым тестом в классе.
Код:
@Before
public void setUp() {
// код подготовки
}
@After
Метод, который будет выполнен после каждого теста.
Код:
@After
public void tearDown() {
// код очистки
}
@override
Эта аннотация говорит компилятору, что ты переопределяешь метод суперкласса. Если что-то не так, он сразу даст знать.
Код:
@Override
public void toString() {
// код
}
@SuppressWarnings
Если компилятор начинает ругаться на что-то, но ты знаешь, что это нормально, можно использовать эту аннотацию, чтобы отключить предупреждения.
Код:
@SuppressWarnings("unchecked")
public void doSomething() {
// код
}
@value
Если ты в Spring и нужно привязать значения из конфигурации, используешь @value. Очень удобно!
Код:
@Value("${app.name}")
private String appName;
@Component
Эта аннотация говорит Spring, что класс — это компонент. Он его сам найдет и зарегистрирует.
Код:
@Component
public class MyComponent {
// код
}
@service
Если у тебя есть бизнес-логика, вот сюда можно её запихнуть. @service — это для сервисов.
Код:
@Service
public class UserService {
// код
}
@repository
Для классов, которые работают с базой данных, используем @repository. Это помогает Spring понять, что делать с данными.
Код:
@Repository
public class UserRepository {
// код
}
@Transactional
Когда ты хочешь, чтобы метод выполнялся в рамках транзакции, добавляй эту аннотацию. Очень удобно для работы с базами.
Код:
@Transactional
public void saveUser(User user) {
// код
}
@configuration
Эта аннотация обозначает, что класс содержит бины для Spring. Полезно, если ты настраиваешь приложение.
Код:
@Configuration
public class AppConfig {
// код
}
@RequestBody
Используется в Spring для получения данных из тела HTTP-запроса. Полезно в REST API.
Код:
@PostMapping("/users")
public void createUser(@RequestBody User user) {
// код
}
@ResponseBody
Позволяет вернуть данные прямо в теле ответа. Часто используется с контроллерами.
Код:
@GetMapping("/users/{id}")
@ResponseBody
public User getUser(@PathVariable String id) {
// код
}
@PathVariable
Используется в Spring для извлечения переменных из URL. Удобно для динамических маршрутов.
Код:
@GetMapping("/users/{id}")
public User getUser(@PathVariable String id) {
// код
}
@Scheduled
Позволяет выполнять методы по расписанию. Очень полезно для фоновых задач.
Код:
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
// код
}
@async
Позволяет выполнять методы асинхронно. Классно для долгих операций, чтобы не блокировать основной поток.
Код:
@Async
public CompletableFuture<String> asyncMethod() {
// код
}
@PostConstruct
Эта аннотация говорит, что метод нужно выполнить сразу после создания бина. Полезно для инициализации.
Код:
@PostConstruct
public void init() {
// код
}
@PreDestroy
Применяется для указания метода, который должен выполниться перед уничтожением бина.
Код:
@PreDestroy
public void cleanup() {
// код
}
@Transactional(readOnly = true)
Если метод только читает данные из базы, можно добавить это для оптимизации.
Код:
@Transactional(readOnly = true)
public List<User> getAllUsers() {
// код
}
@Valid
Используется для проверки корректности данных, например, в Spring при получении объектов.
Код:
public void createUser(@Valid User user) {
// код
}
@NotNull
Часто используется вместе с @Valid для указания, что поле не должно быть null.
Код:
@NotNull
private String name;
@Size
Эта аннотация помогает задать ограничения на длину строки.
Код:
@Size(min = 2, max = 30)
private String username;
@JsonProperty
Используется для настройки сериализации/десериализации JSON в Jackson.
Код:
@JsonProperty("user_name")
private String username;
@JsonIgnore
Позволяет игнорировать поле при сериализации/десериализации.
Код:
@JsonIgnore
private String password;
@ConfigurationProperties
Используется для привязки свойств конфигурации к классу.
Код:
@ConfigurationProperties(prefix = "app")
public class AppProperties {
// код
}
@Autowired(required = false)
Если зависимость не обязательна, можно использовать этот вариант.
Код:
@Autowired(required = false)
private Optional<UserService> userService;
@RequestParam
Для получения параметров из HTTP-запроса. Удобно для GET-запросов.
Код:
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name) {
// код
}
@ResponseStatus
Указывает статус HTTP-ответа. Полезно для обработки ошибок.
Код:
@ResponseStatus(HttpStatus.NOT_FOUND)
public class UserNotFoundException extends RuntimeException {
// код
}
@ControllerAdvice
Обрабатывает исключения глобально в приложении. Удобно для централизованной обработки ошибок.
Код:
@ControllerAdvice
public class GlobalExceptionHandler {
// код
}
@ExceptionHandler
Обрабатывает определенные исключения в контроллерах. Можно указать, какие именно исключения обрабатывать.
Код:
@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity<String> handleUserNotFound(UserNotFoundException ex) {
// код
}
@RequestMapping(method = RequestMethod.POST)
Для указания, что метод контроллера обрабатывает POST-запросы.
Код:
@RequestMapping(value = "/users", method = RequestMethod.POST)
public void createUser(@RequestBody User user) {
// код
}
@RestController
Это просто комбинированная аннотация @Controller и @ResponseBody. Удобно для RESTful веб-сервисов.
Код:
@RestController
public class UserController {
// код
}
@Crossorigin
Позволяет настраивать CORS (Cross-Origin Resource Sharing). Полезно, если у тебя фронт и бэк на разных доменах.
Код:
@CrossOrigin(origins = "http://example.com")
@GetMapping("/users")
public List<User> getUsers() {
// код
}
@PROFILE
Позволяет настраивать, какие бины активны в зависимости от профиля среды.
Код:
@Profile("dev")
@Bean
public DataSource dataSource() {
// код
}
@ComponentScan
Используется для указания пакетов, в которых нужно искать компоненты.
Код:
@ComponentScan(basePackages = "com.example")
public class AppConfig {
// код
}
@bean
Позволяет объявлять бины в конфигурационном классе.
Код:
@Bean
public UserService userService() {
// код
}
@Conditional
Эта аннотация используется для условной регистрации бинов. Полезно для гибкой настройки.
Код:
@Conditional(SomeCondition.class)
@Bean
public SomeBean someBean() {
// код
}
@Scheduled(cron = "0 0 * * * ?")
Для задания расписания с помощью cron-выражений.
Код:
@Scheduled(cron = "0 0 * * * ?")
public void scheduledTask() {
// код
}
Последнее редактирование: