English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Аннотации SpringBoot

Аннотации Spring Boot являются формой метаданных, которые предоставляют информацию о программе. Иными словами, аннотации используются для предоставления информации о дополнениеинформация. Она не является частью разработанного нами приложения. Она не оказывает直接影响 на операции кода, на который она ссылаются. Не изменяет работу скомпилированного приложения.

В этой главе мы обсудим некоторые важные аннотации Spring BootМы будем использовать это в后面的教程部分。

Аннотации ядра Spring Framework

@Required: Он подходит для bean Установочный метод. Он указывает, что необходимо заполнить аннотированный bean необходимыми свойствами при конфигурации,否则 будет вызван исключение BeanInitilizationException .

Пример

public class Machine 
{
private Integer cost;
@Required
public void setCost(Integer cost) 
{
    this.cost = cost;
}
public Integer getCost() 
{
    return cost;
}   
}

@Autowired: : Spring предоставляет автоматическую装配 на основе аннотаций через @Autowired. Он используется для автоматического подключения setter методов, переменных и конструкторов spring bean. При использовании аннотации @Autowired контейнер Spring автоматически подключает bean через соответствие типов.

Пример

@Component
public class Customer
{
    private Person person;
    @Autowired
    public Customer(Person person) 
    { 
        this.person = person;
    }
}

@Configuration: : Это аннотация классового уровня. Классы с аннотацией @Configuration используются контейнерами Spring в качестве источников определения bean.

Пример

@Configuration
public class Vehicle
{
    @BeanVehicle engine()
    {
        return new Vehicle();
    }
}

@ComponentScan: : Используется для сканирования bean в пакете. Он используется вместе с аннотацией @Configuration. Мы также можем指定 базовые пакеты для сканирования Spring компонентов.

Пример

@ComponentScan(basePackages = "com.w3codebox")
@Configuration
public class ScanComponent
{
// ...
}

@Bean: Это аннотация методного уровня. Она аналогична XMLМаркирует代替 метод. Он указывает на метод, который создает bean, управляемый контейнером Spring.

Пример

@Bean
public BeanExample beanExample() 
{
    return new BeanExample();
}

Конструкторские аннотации Spring Framework

@Component: @Component: @Component . Это аннотация уровня класса. Она используется для маркировки Java-класса в качестве Bean. В классовом пути был найден класс с Java-класс с аннотацией Spring Bean. Spring фреймворк его захватывает и настраивает его в контексте приложения .

Пример

@Component
public class Student
{
    ......
}

@Controller: @Controller - это аннотация уровня класса. Это @Component специализация. Она маркирует класс в качестве обработчика веб-запросов. Обычно используется для обслуживания веб-страниц. По умолчанию он возвращает строку, указывающую на маршрут для перенаправления. Обычно используется вместе с @RequestMapping аннотации используются вместе.

Пример

@Controller
@RequestMapping("books")
public class BooksController 
{
    @RequestMapping(value = "{name}", method = RequestMethod.GET)
    public Employee getBooksByName() 
    {
        return booksTemplate;
    }
}

@Service: также используется на уровне класса. Она сообщает Spring, что этот класс содержит бизнес-логика.

Пример

пакет com.w3codebox;
@Service
public class TestService
{
    public void service1()
    {
        //код Business
    }
}

@Repository: Это аннотация уровня класса. Этот репозиторий напрямую доступен к базе данных DAO (Объект доступа к данным). Этот репозиторий выполняет все операции, связанные с базой данных.

пакет com.w3codebox;
@Repository 
public class TestRepository
{
    public void delete()
    {   
        //код Persistence
    }
}

аннотации Spring Boot

@EnableAutoConfiguration: : она автоматически конфигурирует beans, существующие в классовом пути, и настраивает их для выполнения методов. В версии выпуска Spring Boot 1.2.0 использование этой аннотации было сокращено, так как разработчики предоставили замену для этой аннотации, namely @SpringBootApplication . @SpringBootApplication: : это три аннотации @EnableAutoConfiguration, @ComponentScan,и @Configuration сочетание.

Spring MVC и REST аннотации

@RequestMapping: Для маппингаСетевые запросыУ него есть множество опциональных элементов, таких как consumes, header, method, name, params, path, produces и value. Мы используем его вместе с классом и методом.

Пример

@Controller
public class BooksController 
{
    @RequestMapping("/computer-science/books")
    public String getAllBooks(Model model)
    {
        //application code
        return "bookList";
    }
}

@GetMapping: Он привязывает HTTP GET Маппинг запроса на конкретный обработчик метода. Он используется для созданияВзятияВеб-сервисного точки终结а, вместо @RequestMapping(method = RequestMethod.GET) @PostMapping Он привязывает HTTP POST Маппинг запроса на конкретный обработчик метода. Он используется для созданияСозданияВеб-сервисного точка终结а, вместо @RequestMapping(method = RequestMethod.POST) @PutMapping: Он привязывает HTTP PUT Маппинг запроса на конкретный обработчик метода. Он используется для созданияСозданияилиОбновленияВеб-сервисного точка终结а, вместо @RequestMapping(method = RequestMethod.PUT) @DeleteMapping: Он привязывает HTTP DELETE Маппинг запроса на конкретный обработчик метода. Он используется для созданияУдаленияВеб-сервисный точка終端 для ресурсов. Используйте его вместо @RequestMapping(method = RequestMethod.DELETE) @PatchMapping: Он привязывает HTTP PATCH Маппинг запроса на конкретный обработчик метода. Используйте его вместо @RequestMapping(method = RequestMethod.PATCH) @RequestBody: Для привязки объекта HTTP-запроса к объекту в параметрах метода.ПривязкаВнутри он использует HTTP MessageConverters Преобразование текста запроса. Когда мы используем При аннотации метода параметром @RequestBody, Spring-фреймворк привязывает传入ный тело HTTP-запроса к этому параметру. @ResponseBody: Он связывает возвращаемое значение метода с телом ответа. Он сообщает Spring Boot Framework о том, что возвращаемый объект должен быть сериализован в формате JSON и XML. @PathVariable: для извлечения значений из URI. Он идеально подходит для RESTful Web-сервисов, где URL содержит переменные пути. Мы можем определить несколько @PathVariable в одном методе. @RequestParam: для извлечения параметров запроса из URL. Также называетсяПараметры запроса.Он идеально подходит для веб-приложений. Если в URL нет параметров запроса, можно указать значение по умолчанию. @RequestHeader: для получения подробной информации о заголовках HTTP-запроса. Мы используем этот аннотации какпараметры метода.Опциональные элементы аннотации:имя, обязательно, значение, defaultValue. Для каждого细节 в заголовке мы должны определить отдельную аннотацию. Мы можем использовать ее несколько раз в одном методе @RestController: Ее можно рассматривать как @Controller и @ResponseBody Аннотациясочетание. Аннотация @RestController本身就 аннотирована аннотацией @ResponseBody. Не нужно аннотировать каждый метод аннотацией @ResponseBody. @RequestAttribute: Он связывает параметры метода с свойствами запроса. Он предоставляет удобный способ доступа к свойствам запроса из методов контроллера. С помощью аннотации @RequestAttribute мы можем получить объекты, заполненные на сервере.

Внимание: Мы использовали все приведенные выше примеры и реальных примеров в учебнике RESTful Web-сервисов.