Spring Boot использует стартер для решения многих задач конфигурации, но как он решил эти проблемы?
Здесь мы используем простой пример, чтобы увидеть, как стартер устанавливает конфигурацию по умолчанию.
1. Создайте стартовый проект
Пользовательский стартер, спецификация именования проекта: Пользовательская имени-скрещины-буте-звезды
Давайте посмотрим на мою последнюю структуру каталогов
1. Измените файл pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.elvin</groupId> <artifactId>my-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <mame> my-spring-boot-starter </name> <hurl> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </properties> <depertive> <dery> <groupd> org. <artifactId>spring-boot-autoconfigure</artifactId> <version>1.5.9.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <groupId> org.apache.maven.plugins </GroupId> <artifactId> maven-compiler-plugin </artifactid> <sersive> 2.3.2 </version> <configuration> <source> 1.8 </source> <target> 1.8 </target> </configuration> </plugin> </plugins> </build> </ulect> </ulect> </build> </project> </build> </build>
На самом деле, он только что добавил пружинную аувтоконфигура
Я прокомментировал основной метод в файле приложения, он здесь не используется
2. Настройте приемной файл, соответствующий атрибутам
пакет org.elvin; импорт org.springframework.boot.context.properties.configurationProperties;/** * Автор: Elvin * Дата: 2017/12/12 14:51 * Описание: */@ConfigurationProperties (Prefix = «Hello»). Приватная строка msg = msg; public String getMsg () {return msg; } public void setMsg (String msg) {this.msg = msg; }}3. Внешний сервис
Пакет org.elvin;/** * Автор: Элвин * Дата: 2017/12/12 14:55 * Описание: */public class helloService {Private String MSG; public String sayshello () {return "hello" + msg; } public String getMsg () {return msg; } public void setMsg (String msg) {this.msg = msg; }}4. Внешняя служба связана с соответствующим файлом конфигурации
пакет org.elvin; импорт org.springframework.beans.factory.annotation.autowired; импорт org.springframework.boot.autoconfigure.condition.conditionalonClass; импорт org.springframework.boot.autoconfigure.condition.conditionalonmissingbeanbean.boot.autoconfigure.condition.conditionalonmissingbean.boot.autoconfigure.condition.conditionalonmissingbeanbeh org.springframework.boot.autoconfigure.condition.conditionalonProperty; импорт org.springframework.boot.context.properties.EnableConfigurationProperties; импорт org.springframework.context.annotation.bean; import.spramework.nannotation.confirtation.confirtation.confirtation.confirtation.nannation.nannotation.confirtation.confirtation.nannotation.nanlation.nannotation.nannotation. Элвин * Дата: 2017/12/12 14:59 * Описание: */@configuration@enableconfigurationproperties (helloserviceproperties.class) @conditionalonclass (helloservice.class) @conditionalonproperty (prefix = "Hello", Value = "Enucated", matchififing = true). @Autowired Private HelloServiceProperties HelloServiceProperties; @Bean @conditionalonmissingbean (helloservice.class) public helloservice helloservice () {helloService helloService = new HelloService (); helloservice.setmsg (helloserviceproperties.getmsg ()); Вернуть HelloService; }}5. Конфигурация стартера: Spring.Factories
org.springframework.boot.autoconfigure.enableautoconfiguration = org.elvin.helloserviceautoconfiguration
После этого используйте MVN Clean Install, чтобы упаковать в библиотеку Maven
2. Использование проекта Spring Boot
Создайте новый Spring Boot Project и выберите Web.
Структура каталога:
Давайте посмотрим на эталонный pom.xml
<depervice> <groupid> org.elvin </GroupId> <ratifactid> my-spring-boot-starter </artifactid> <sersive> 1.0-snapshot </version> </depertion>
Взгляните на HelloController
пакет org.elvin.learn.springboot.controller; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bindation.antation.Requestmapping; import org.springFramework.web.Bindation.RestControler; org.springframework.web.bind.annotation.restcontroller; Import org.elvin. *;/** * Автор: Элвин * Дата: 2017/12/12 15:34 * Описание: */@@restcontroller@requestmapping ("Привет") Общедоступный класс hellocontroller {@auutowired private halloservice holdervice; @Requestmapping ("index") public String Index () {return helloService.sayhello (); }}Геллерс здесь находится в предыдущем настраиваемом стартере.
1. Результат: если не настроен, он должен быть выведен Hello World
2. В файле конфигурации добавьте hello.msg = хахахахахах
Этот пример очень прост, просто чтобы показать основной процесс, а остальные являются логическими суждениями каждого плагина.
Ссылки:
Весенний ботинок, разрушитель развития Javaee, практическая битва
Приведенное выше учебник по реализации Spring Boot Custom Starter - это весь контент, которым я поделился с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.