Гайд Аннотации в Java 2

Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2024
Сообщения
181
Реакции[?]
3
Поинты[?]
3K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Сап плотный братва, короче сегодня у нас Аннотации

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() {
// код
}
 
Последнее редактирование:
expenis 3.1 paster
Пользователь
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,450
Реакции[?]
34
Поинты[?]
46K
Сап плотный братва,короче сегодня у нас Аннотациии

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() { }
мусор, какой смысл в половине из них? если тут обитают малолетние дети.
 
Read Only
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
842
Реакции[?]
4
Поинты[?]
5K
Сап плотный братва, короче сегодня у нас Аннотации

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() {
// код
}
А НАХУЯ ТУТ АННОТАЦИИ ДЛЯ SPRING?? В РАЗДЕЛЕ КУБОВ БЛЯТЬ))
 
Read Only
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
842
Реакции[?]
4
Поинты[?]
5K
Начинающий
Статус
Оффлайн
Регистрация
29 Сен 2024
Сообщения
88
Реакции[?]
1
Поинты[?]
0
Ну пиздец же...
Дай мне хотяб одно нормальное применение спринга для узников читов на майн
Ну так спринг на сколько я знаю в кубоголовом мире не используется а тут как будто чисто по приколу хуйнули что бы было ну и чтобы с пастинга в спринг прыгнули 🤙
 
Read Only
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
842
Реакции[?]
4
Поинты[?]
5K
Ну так спринг на сколько я знаю в кубоголовом мире не используется а тут как будто чисто по приколу хуйнули что бы было ну и чтобы с пастинга в спринг прыгнули 🤙
ну вот и начал ты тему переводить и сам подтвердил что половина анотаций в даном разделе бесполезны))))
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2023
Сообщения
66
Реакции[?]
2
Поинты[?]
2K
дерьмо даже не додумался проверить на реальном случае в спринге
 
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2023
Сообщения
404
Реакции[?]
2
Поинты[?]
0
Сап плотный братва, короче сегодня у нас Аннотации

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() {
// код
}
:roflanBuldiga:
 
гений, плейбой, но не миллиардер
Пользователь
Статус
Оффлайн
Регистрация
6 Июн 2017
Сообщения
137
Реакции[?]
90
Поинты[?]
4K
а причем тут блять java когда у тебя большинство аннотаций из спринга и Jpa с hibernate'ом
 
Сверху Снизу