Spring Boot usa Starter para resolver muchos problemas de configuración, pero ¿cómo resolvió estos problemas?
Aquí usamos un ejemplo simple para ver cómo el arranque establece la configuración predeterminada.
1. Construye un proyecto de inicio
Starter personalizado, la especificación de nomenclatura de proyectos es: spring-boot-starter personalizados
Echemos un vistazo a mi última estructura de directorio
1. Modifique el archivo 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.0.0.0.0.0.0.0.0.0.0.0.0.0.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> <name> my-spring-boot-starter </name> <sl> http://maven.apache.org </sl> <properties> <ject.build.sourceEncoding> UTF-8 </project.build.sourceenicoding> </propiences> <depentions> <dependency> <grupe> org.springfringframe.work.work. <AtifactId> Spring-Boot-Autoconfigure </artifactid> <versión> 1.5.9.release </versewer> </pendency> <pendency> <MoupRupid> Junit </groupid> <artifactId> Junit </artifactId> <Version> 3.8.1 </Version> <cope> Test </cope> </pendency> </plEDENCESS> <PLECTERS> <Moupid> org.apache.maven.plugins </proupid> <artifactid> maven-compiler-plugin </arifactid> <verserse> 2.3.2 </versión> <nuficiente> <overeur> 1.8 </severa> <target> 1.8 </target> </figuration> </tugin> </tugins> </stract> </proyecto>
En realidad, solo agregó la autoconfiguración de boot de primavera
Comenté el método principal en el archivo de la aplicación, esto no se usa aquí
2. Configure el archivo receptor correspondiente a los atributos
paquete org.elvin; import org.springframework.boot.context.properties.configurationProperties;/** * Autor: Elvin * Fecha: 2017/12/12 14:51 * Descripción: */@Configuración ConfigurationProperties (prefix = "Hola") Class pública HELOServicePrapertPerTies {// Contenido de configuración predeterminado Private Static Final String MsgS Spsy ";" World "; cadena privada msg = msg; public String getMsg () {return msg; } public void setmsg (string msg) {this.msg = msg; }}3. Servicio externo
paquete org.elvin;/** * Autor: Elvin * Fecha: 2017/12/12 14:55 * Descripción: */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. El servicio externo está asociado con el archivo de configuración correspondiente
paquete org.elvin; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.boot.autoconfigure.condition.conditionalonclass; import org.springframework.boot.autoconfigure.condition.conditionalonmissingbean; importar; import org. org.springframework.context.annotation.configuration;/** * Autor: Elvin * Fecha: 2017/12/12 14:59 * Descripción: */@Configuration@EnableNfigurationProperties (prefixy (",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "", "," "," "," "," "," "," "," "," "," "," "," "", "" "," "" valor = "habilitado", matchifMissing = true) clase pública HELOSERVICEAUTOTOCONFIGURATION {@AUTOWIREDEDREDIREDEDREDED PRIVADOPROPERTIES HELLOSERVICEPROPERTIES; @Bean @conditionalonmissingBean (HelloService.class) public HelloService HelloService () {HelloService HelloService = New HelloService (); HelloService.SetMsg (HelloServiceProperties.getMsg ()); devolver herservice; }}5. Configuración de inicio: Spring.Factories
org.springframework.boot.autoconfigure.enableautoconfiguration = org.elvin.helloviceautoconfiguration
Después de hacer esto, use la instalación de MVN Clean para empaquetarla en la biblioteca Maven
2. Uso del proyecto de arranque de primavera
Cree un nuevo proyecto de arranque de Spring y seleccione Web.
Estructura del directorio:
Echemos un vistazo a la referencia pom.xml
<Spendency> <MoupRoMID> org.elvin </groupid> <artifactid> my-spring-boot-starter </arfactid> <versever> 1.0-snapshot </verversion> </dependency>
Echa un vistazo a Helocontroller
paquete org.elvin.learn.springboot.controller; import org.springframework.beans.factory.annotation.aUtowired; import org.springframework.web.bind.annotation.requestMapping; import org.springfframework.web.bind.annotation.restontroller; importar; importación; importación; importación; org.springframework.web.bind.annotation.restController; import org.elvin. *;/** * Autor: Elvin * Fecha: 2017/12/12 15:34 * Descripción: */@RestController@requestMapping ("Hello") Classocontroller público {@aUtowired HELOSESVICE HELOSERVICE; @RequestMapping ("índice") public String index () {return helloservice.sayhello (); }}El helloService aquí está en el iniciador personalizado anterior.
1. Resultado: si no está configurado, debe ser salido hola mundo
2. En el archivo de configuración, agregue hello.msg = jajajajaja
Este ejemplo es muy simple, solo para mostrar el proceso principal, y el resto son los juicios lógicos de cada complemento.
Referencias:
Boot de primavera, el disruptor del desarrollo de Javaee, la batalla de práctica
El tutorial anterior sobre la implementación de Spring Boot Custom Starter es todo el contenido que he compartido con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.