1. Список аннотаций
@Springbootapplication: содержит @componentscan, @configuration и @enableautoconfiguration. Где @componentscan позволяет Spring Boot Scan в класс конфигурации и добавлять его в контекст программы.
@Configuration эквивалентен настройку Spring XML -файла; Код Java может проверить безопасность типа.
@Enableautoconfiguration автоматическая конфигурация.
@Componentscan Componentscan Component Scans для автоматического обнаружения и сборки бобов.
@Component можно использовать с CommandLineRunner для выполнения некоторых основных задач после начала программы.
Аннотация @RestController представляет собой коллекцию @Controller и @Responsebody, указывающая, что это контроллер, и возвратное значение функции напрямую заполняется в корпус ответа HTTP. Это контроллер REST.
@Autowired автоматически импортируется.
@Pathvariable получает параметры.
@Jsonbackreference Решает вложенную задачу внешней ссылки.
@RepositoryRestresourcepublic используется с Spring-Boot-Starter-Data-Rest.
2. Подробное объяснение аннотаций
@SpringbootApplication: объявить Spring Boot для автоматической настройки программы с необходимой конфигурацией. Эта конфигурация эквивалентна трем конфигурациям: @configuration, @enableautoconfiguration и @componentscan.
пакет com.example.myproject; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; @springbootapplication // То же, что и @configuration @enableautoconfiguration @componentscan public Class Application {public static void main (String [] args) {SpringApplication. }}@Responsebody: это означает, что результат возврата этого метода записан непосредственно в тело ответа HTTP. Обычно используется, когда данные получают асинхронно и используются для создания RESTFUL API. После использования @Requestmapping возвратное значение обычно проанализируется как путь прыжков. После добавления @ResponseBody результат возврата не будет проанализирован как путь прыжков, но будет непосредственно записан в тело ответа HTTP. Например, если вы получите асинхронно данные JSON и добавите @Responsebody, данные JSON будут возвращены напрямую. Эта аннотация обычно будет использоваться с @requestmapping. Пример кода:
@RequestMapping ("/test") @Responsebody public String test () {return "ok"; }@Controller: используется для определения класса контроллера. В Spring Project контроллер отвечает за пересылку запроса URL -адреса, отправленного пользователем в соответствующий сервисный интерфейс (уровень обслуживания). Как правило, эта аннотация в классе. Обычно метод должен быть скоординирован с аннотацией @Requestmapping. Пример кода:
@Controller @Requestmapping ("/demoinfo") publicClass Democontroller {@autowired Private DeMoinFoservice DeMoinFoservice; @Requestmapping ("/hello") public String Hello (map <string, Object> map) {System.out.println ("demoController.Hello ()"); map.put ("hello", из TemplateController.hellohtml "); // шаблон hello.html или hello.ftl будет использоваться для рендеринга и отображения. вернуть "/hello";}}@RestController: коллекция компонентов управляющего слоя (например, действие в стойках), @Responsebody и @Controller. Пример кода:
пакет com.kfit.demo.web; import org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @RestController @Requestmapping ("/demoinfo2") publicClass demoController2 {@Requestmapping ("/test") public String Test () {ok ";}}@Requestmapping: предоставляет информацию о маршрутизации и отвечает за картирование URL -адресов с конкретными функциями в контроллере.
@Enableautoconfiguration: Spring Boot Auto-Configuration: Попробуйте автоматически настроить ваше пружинное приложение на основе добавленных вами зависимостей JAR. Например, если HSQLDB существует под вашим классом, и вы не настраивали вручную каких-либо бобов для базы данных, то мы автоматически настроим базу данных в памяти. Вы можете добавить аннотацию @enableautoconfiguration или @springbootapplication в класс @configuration, чтобы выбрать автоконфигурацию. Если вы обнаружите, что применяется конкретный класс автоконфигурации, который вам не нужен, вы можете использовать атрибут исключения @enableautoconfiguration аннотации, чтобы отключить их.
@Componentscan: означает, что класс автоматически обнаружит компонент сканирования. Личное понимание эквивалентно этому, если вы сканируете класс с такими аннотациями, как @Component, @Controller, @Service и т. Д., И регистрировать его в качестве боба, вы можете автоматически собирать все весенние компоненты, включая класс @Configuration. Мы часто используем аннотацию @componentscan для поиска бобов и импортировать их в сочетании с аннотацией @autowired. Все весенние компоненты могут быть автоматически собраны, включая класс @Configuration. Мы часто используем аннотацию @componentscan для поиска бобов и импортировать их в сочетании с аннотацией @autowired. Если нет конфигурации, Spring Boot сканирует классы под пакетом, где находится класс запуска, а также подпакук, в котором используются аннотации @Service, @Repository и т. Д.
@Configuration: эквивалентно традиционному файлу конфигурации XML. Если некоторые сторонние библиотеки должны использовать файлы XML, рекомендуется использовать класс @Configuration в качестве основного класса конфигурации проекта - вы можете использовать аннотацию @ImporTresource для загрузки файла конфигурации XML.
@Import: используется для импорта других классов конфигурации.
@ImporTresource: используется для загрузки файла конфигурации XML.
@Autowired: автоматически импортировать зависимые бобы
@Service: компоненты, которые обычно используются для изменения уровня обслуживания
@Repository: Использование аннотации @Repository может гарантировать, что DAO или репозитории обеспечивают перевод исключения. Класс DAO или репозитории, измененный этой аннотацией, будет обнаружен и настроен ComponetScan, и нет необходимости предоставлять им элементы конфигурации XML.
@Bean: Используйте метод аннотации @Bean, чтобы быть эквивалентным бобов, настроенной в XML.
@Value: введите значение свойства, настроенного Spring Boot Application.properties. Пример кода:
@Value (value = "#{message}") private String Message;@Inject: эквивалентно по умолчанию @autowired, но без необходимого атрибута;
@Component: относится к компонентам в целом. Когда компоненты нелегко классифицировать, мы можем использовать эту аннотацию для аннотации.
@Bean: Это эквивалентно XML, расположенное поверх метода, а не класс, что означает генерировать боб и передать его управлению пружиной.
@Autowired: автоматически импортировать зависимые бобы. метод байтипа. Используйте настроенные бобы, чтобы завершить сборку свойств и методов. Он может отмечать переменные члена класса, методы и конструкторы для завершения автоматической работы сборки. Когда (обязательно = false) добавлена ошибка, не будет сообщена, даже если боб не может быть найден.
@Qualifier: Когда есть несколько бобов одного и того же типа, вы можете использовать @qualifier («имя»), чтобы указать его. Работает с @autowired. В дополнение к инъекции в соответствии с именем, дескрипторы квалификатора @qualifier могут использоваться для выполнения более тонких элементов управления гранулярностью, как выбрать кандидатов. Конкретный метод использования следующим образом:
@Autowired @qualifier (value = "demoinfoservice") private demoinfoservice demoinfoservice;
@Resource (name = ”name», type = ”type”): если в скобках нет контента, по умолчанию по умолчанию. Сделайте что -то похожее на @autowired.
3. JPA Примечания
@Entity: @Table (name = ”"): указывает, что это класс сущности. Обычно используется для двух аннотаций JPA, но если имя таблицы и имя класса объекта одинаковы, @Table можно пропустить.
@Mappedsuperclass: используется для определения сущности, которая является родительским классом. Подкласс атрибута родительского класса может быть унаследован.
@NorePositoryBean: обычно используется в качестве репозитория родительского класса. С этой аннотацией весна не будет создавать экземпляры репозитория.
@Column: Если имя поля такое же, как и имя столбца, его можно опустить.
@ID: означает, что этот атрибут является основным ключом.
@GeneratedValue (стратегия = GenerationType.sequence, Generator = "Repair_seq"): означает, что стратегия первичной генерации ключей - это последовательность (может быть авто, идентификация, нативная и т. Д.
@Segecencegeneretor (name = "report_seq", seceenceName = "seq_repair", allocationize = 1): имя - это имя последовательности, так что SequenceName - это имя последовательности базы данных, и два имена могут быть последовательными.
@Transient: означает, что это свойство не является картой в поле в таблице баз данных, и структура ORM будет игнорировать это свойство. Если атрибут не является картой поля таблицы базы данных, он должен быть помечен как @transient. В противном случае структура ORM по умолчанию по умолчанию его аннотации как @Basic. @Basic (fetch = fetchtype.lazy): тег может указать, как загружаются атрибуты объекта
@Jsonignore: функция состоит в том, чтобы игнорировать некоторые свойства в бобах Java, когда сериализуют JSON, и затронуты и сериализация, и десериализация.
@Joincolumn (name = ”loginid»): один к одному: иностранные ключи в этой таблице, указывающие на другую таблицу. One-to-My: другая таблица указывает на внешний ключ этой таблицы.
@Onetoone, @onetomany, @manytoone: соответствует одному к одному, один ко многим и многим к одному в файле конфигурации Hibernate.
4. Примечания, связанные с Springmvc
@Requestmapping: @Requestmapping ("/path") означает, что контроллер обрабатывает все запросы на URL "/Path". Запрос - это аннотация, используемая для обработки отображений адресов запроса, и может использоваться на классах или методах.
Для использования в классе все методы, которые представляют эти запросы ответа в классе, принимают этот адрес как родительский путь. Эта аннотация имеет шесть атрибутов:
@RequestParam: Используется до параметра метода.
@RequestParam String a = request.getParameter ("a"). @Pathvariable: pathviable. Например, requestMapping ("user/get/mac/{macaddress}") открытая строка getbymacaddress (@pathvarable string macaddress) {// сделай что -нибудь; }Параметры должны быть такими же, как имена в скобках.
5. Глобальная обработка исключений
@Controlleradvice: содержит @component. Можно отсканировать. Объединенная обработка исключений.
@ExceptionHandler (exception.class): используется в методе, чтобы указать, что если вы столкнетесь с этим исключением, вы выполните следующий метод.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.