Colección de citas famosas - Slogan de motivación - 210630: configuración automática de springBoot-inicio personalizado

210630: configuración automática de springBoot-inicio personalizado

El código fuente de Spring Boot para la configuración automática está en spring-boot-autoconfigure-x.x.x.x.jar:

Por supuesto, el documento oficial no parece mencionar la descripción relevante de la configuración automática. principio. Sin embargo, no es difícil para nosotros adivinar que hay una anotación @SpringBootApplication en la clase de inicio Spring Boot. Esta anotación es una anotación esencial para el proyecto Spring Boot. ¡Entonces el principio de configuración automática debe estar indisolublemente ligado a esta anotación!

@SpringBootApplication es una anotación compuesta o una anotación derivada. Hay una anotación @EnableAutoConfiguration en @SpringBootApplication, traducida al lenguaje humano, significa habilitar la configuración automática.

Y esta anotación también es una anotación derivada en la que las funciones clave las proporciona @Import. El método selectImports() del AutoConfigurationImportSelector importado escanea todos los paquetes jar con META-INF/spring.factories a través de SpringFactoriesLoader.loadFactoryNames(). Existe un archivo spring.factories de este tipo en spring-boot-autoconfigure-x.x.x.x.jar.

Este archivo spring.factories también tiene la forma de un grupo de clave = valor. Una de las claves es el nombre de clase completo de la clase EnableAutoConfiguration y su valor es una lista de nombres de clases xxxxAutoConfiguration. Estas clases Los nombres están separados por comas, como se muestra en la siguiente figura:

Esta anotación @EnableAutoConfiguration está marcada indirectamente en la clase de inicio Spring Boot a través de @SpringBootApplication. El método selectImports() se ejecutará dentro de SpringApplication.run(...), buscará las clases correspondientes a los nombres completos de todas las clases de configuración automática de JavaConfig y luego cargará todas las clases de configuración automática en el contenedor Spring.

Cada clase de configuración automática de XxxxAutoConfiguration entrará en vigor bajo ciertas condiciones. Las restricciones de estas condiciones se reflejan en forma de anotaciones en Spring Boot. Las anotaciones condicionales comunes incluyen las siguientes:

Toma. Tome la clase de configuración ServletWebServerFactoryAutoConfiguration como ejemplo, explique cómo surten efecto los atributos en el archivo de configuración global, como: server.port = 8081, cómo surte efecto (por supuesto, habrá un valor predeterminado si no se configura, este valor predeterminado viene desde org.apache.catalina.startup.Tomcat).

En la clase ServletWebServerFactoryAutoConfiguration, hay una anotación @EnableConfigurationProperties: Habilitar propiedades de configuración, y el parámetro detrás de ella es una clase ServerProperties. Este es el punto final del hábito sobre la configuración.

En esta clase, vemos una anotación muy familiar: @ConfigurationProperties. Su función es vincular propiedades del archivo de configuración al bean correspondiente, y @EnableConfigurationProperties es responsable de importar esta propiedad vinculada. las propiedades se agregan al contenedor de resorte (ver captura de pantalla arriba). Entonces todas las demás propiedades relacionadas con esta clase se pueden definir en el archivo de configuración global. En otras palabras, la clase que realmente "limita" qué propiedades podemos configurar en el archivo de configuración global son estas clases XxxxProperties, que son las mismas que las definidas. en el archivo de configuración, el conjunto de atributos que comienzan con la palabra clave de prefijo se corresponden de forma única.

En este punto, podemos entenderlo a grandes rasgos. Las propiedades configuradas globalmente, como server.port, etc., están vinculadas a la clase de entidad de configuración XxxxProperties correspondiente a través de la anotación @ConfigurationProperties, encapsuladas como un bean y luego importadas al contenedor Spring a través de la anotación @EnableConfigurationProperties.

Muchas clases de configuración automática de XxxxAutoConfiguration son la forma JavaConfig del contenedor Spring. Su función es importar beans para el contenedor Spring, y todas las propiedades requeridas por los beans importados se obtienen a través de los beans de xxxxProperties.

Es posible que todavía tengas dudas hasta el momento, pero durante la entrevista, no es necesario que respondas de manera tan específica. Solo debes responder así:

Starter puede entenderse como. Posibles complementos conectables, que proporcionan un conjunto conveniente de descriptores de dependencia, puede obtener un servicio integral para todas las tecnologías Spring y relacionadas que necesita. La aplicación solo necesita introducir la dependencia inicial en maven, y SpringBoot puede escanear automáticamente la información que se cargará e iniciar la configuración predeterminada correspondiente. Descrito en una oración, es el iniciador de escenas de Springboot.

Los nombres de inicio definidos oficialmente son spring-boot-starter-xxx. Los que definimos nosotros mismos son generalmente xxx-spring-boot-starter. Cree un nuevo ruangh-id-gengerate-spring-boot-starter. project

Importe el paquete springboot spring-boot-starter

Defina una configuración de mapeo de las nuevas clases IdProperties y LockieProperties, agregue la anotación ConfigurationProperties("machine.id"), nuestro archivo de configuración. termina con Comienza con machine.id, como mathine.id.name=boot-order, y otra configuración comienza con spring.lockie

Hay un método getId en IdService para generar una ID personalizada

Cree el directorio META-INF en el directorio de recursos y agregue el archivo spring.factories. Configure EnableAutoConfiguration en este archivo, de la siguiente manera:

Cree un módulo y agregue dependencias en el archivo pom

Agregue anotaciones a la clase de inicio

Agregue configuración al Parámetros del archivo de configuración

Agregar clase de prueba

Ejecútelo para verificar los resultados y vea que los resultados son los que queremos. En este punto, hemos personalizado con éxito un iniciador. , necesitamos crear 3 clases. 1 archivo de configuración, xxProperties, xxService, xxAutoConfiguation y spring.factories

上篇: Examen de universidad a pregrado de Zhejiang 2020: ¿Capítulo de recitación de chino universitario "La historia de la plantación de árboles y Guo Lituo"? 下篇: Palabras de cuatro caracteres en la Unidad 7 del Volumen 1 del idioma chino de cuarto gradoPalabras de cuatro caracteres y varias formas de palabras en el Volumen 1 de Materiales de repaso de chino para el cuarto grado. Mirando hacia el este, con calma y tranquilidad, cruzando el río, moviéndose de la mano, el cielo se llena de la atención de la gente. Las flores están floreciendo, los árboles son verdes, las frutas frescas son fragantes, el viento sopla, los copos de nieve vuelan, la hierba vuela, las flores verdes son incómodas, no es fácil hacer tres comidas al día y No es fácil estar seguro. De repente, la carne y la sangre de los compatriotas, los lazos familiares, el imperialismo, festines y festines, regocijándose por revitalizar a China. Inesperadamente, la sociedad agrícola estaba en todas partes y, después de todo, el teléfono controlado por el programa estaba extasiado. El sonido se presenta de muchas formas y, sin duda, es misterioso. Hay muchos tipos de personas que se sienten abrumadas e inquietas mientras pasan el tiempo. El espíritu increíble es en vano, grita y grita, aprovechando cosas inesperadas, los números de teléfono son tan numerosos como un mar de ramas muertas. Ye Jiu, quien fue derrotado en el campo de batalla, luchó hacia el sur y el norte y era invencible. Pensó profundamente, trabajó duro, lloró y de repente se dio cuenta de que la armonía y el orden son las únicas cosas grandes cuando la adversidad y * * las ganancias están en armonía, joven, joven, viejo y cansado. Los poderosos barcos transoceánicos tienen su lugar. Los deliciosos platos son de tamaño pequeño y fuertes. ABB: excitada, peluda, sonriente, ardiente, dorada, risueña. AABB: A la deriva, lúgubre, saltarín, diligente, vagamente original. ABCC: doloroso, enérgico, arrogante, vacío, vacío. La gente está lejos. ABAC: libertad, quejoso, despreocupado. El destino es ilimitado y no deja rastro. AABC: Cortinas goteantes y cascadas. El río crecido está vacío. Las palabras polifónicas se multiplican por shènɡ (mil veces) chénɡ (multiplicación) y se restan por jiànɡ (descendencia). (rendirse) roll juàn (papel) roll màn (cabello rizado) entre jiān (tiempo) jiàn (intervalo) hacia arriba zh màn (intervalo). Iáo (ajuste)ɡuàno (transferencia) for៍n៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍៍ mèn (trueno) allanar el camino pū (allanar el camino) p ù (pavimentar) debería (yīn) debería (yīn) debería (difícil) nīn (desastre) girar zhàn (girar) Zhu ù n (girar) Hao (girar). (modelo) vacío kònɡ (espacio) kōnɡ (espacio) pesado chónɡ (superposición) zhònɡ (importante) beber Hē (beber agua) hē (aplausos) doblar shé (las ramas caen) zhē (lanzar) El autor de "Cricket's House" es Fabre , el famoso entomólogo francés, creó la famosa "Historia de los insectos". El autor de "White Goose" es Feng Zikai; el autor de "Cat and Hen" es Lao She; el autor de "Green Creeper" es Xiao Fuxing. 2. Los cuentos de hadas de Grimm se difundieron oralmente entre la gente y luego fueron recopilados y compilados por los hermanos Grimm en Alemania. Hay 265,438+00 artículos que incluyen Cenicienta, Caperucita Roja y Blancanieves. 3. En julio de 2003, 29 paisajes de China habían sido incluidos en la Lista del Patrimonio Mundial, entre los cuales la Gran Muralla, el Palacio de Verano y los guerreros y caballos de terracota son todos patrimonios culturales. 4. "La educación del amor" es una novela infantil estilo diario, originalmente titulada "Corazón". Este libro cuenta cien historias conmovedoras que sucedieron entre estudiantes de cuarto grado en el tono de los estudiantes de primaria. Los protagonistas de la historia son principalmente estudiantes, así como gente común como profesores y padres de alumnos. Cuarto, ¿acumulación? (1) Utilice pareados (parejas relacionadas con paisajes naturales) para bloquear la cima de la montaña con niebla y el cielo brumoso con montañas, e incluso el agua de la cola está conectada con el cielo y el agua verde. No te preocupes, porque el viento me arrugó la cara. Las montañas y el agua de Baekdusan son siempre claras. Los días soleados y lluviosos de Xiuxiu siempre son extraños. Los giros y vueltas de la montaña y los giros y vueltas del camino están todos bajo los árboles. (2) Las canciones con nombres de flores incluyen flores de ciruelo en el primer mes, orquídeas en macetas en febrero, flores de durazno en marzo y rosas cerca del muro bajo en abril. (3) Historias idiomáticas 1. Ten un plan, también llamado "tener un plan en tu corazón". Cuando dibujas bambú, ya tienes la imagen del bambú en tu mente, lo que significa que has considerado todo antes de hacer algo. (Este modismo cuenta la historia de Ke Wen, un pintor de la dinastía Song del Norte). 2. El bosque de albaricoque está lleno de primavera, también conocido como "el famoso bosque de albaricoque", que se utiliza para elogiar las magníficas habilidades médicas del médico y noble ética médica. Entre ellos, "Xinglin" elogia a los médicos. (Este modismo cuenta la historia de Dong Feng, un médico del Reino Wu durante el período de los Tres Reinos) (4) El bosque bajo la lluvia El bosque bajo la lluvia es un mundo de cuento de hadas Cuando entras, te convertirás en un mundo de cuento de hadas. duende. Cada árbol te dará mucha alegría y descubrirás muchas cosas nuevas. Las gotas de lluvia de cristal ruedan sobre las hojas y las arañas tejen seda para formar un collar. La alfombra de flores caídas es suave y fragante, y las ranas bailan para ti. Los pájaros quieren cantar bajo la lluvia y las ardillas mueven sus colas peludas. Las bayas después de la llovizna son agrias y dulces, y el erizo se cubre con ellas y se transporta a casa. Incluso esas pequeñas gotas de lluvia pueden hacer magia y convertirse en hongos inmediatamente cuando caen al suelo. (5) Modismos sobre animales: esperanza de éxito del dragón, bailar como un dragón sin cabeza de dragón, volar como un tigre con alas, montar como un tigre desde la montaña, montar como un tigre, montar como un tigre, montar como un tigre , montar como un tigre, montar como un tigre, montar como un tigre, montar como un tigre, montar como un tigre, montar como un tigre, montar como un tigre, montar como un caballo, montar como un caballo, montar como un caballo , montar como un caballo, montar como un caballo, montar como un caballo, montar como un caballo, junto al lago Daming) La brisa clara y la luna brillante no tienen precio, cerca del agua y las montañas verdes hay amor (Suzhou, Jiangsu) Canglang Pabellón (7) Un poema antiguo cuenta la historia de mi viejo amigo Zhuang (dinastía Tang). Los antiguos tenían gallinas y mijo, y tú me entretenías en tu granja. Bosques verdes rodean el pueblo y colinas verdes se encuentran fuera de la ciudad. Abre la ventana para mirar hacia la huerta del valle, pasa el cristal y habla de cultivos. Cuando llegue el noveno festival, venga aquí para ver los crisantemos. El poema describe el paisaje del pueblo de montaña y la escena de reunión de amigos, expresando el estado de ánimo pacífico y pausado del poeta y su interés por la vida rural. Su Shi (dinastía Song) escribió sobre el muro del bosque occidental y vio un pico en el costado de la cresta, con diferentes alturas.