Yo no soy fan de bruto sobre abstracciones, Y creo que la Primavera ha cometido un delito mayor.

Pero estoy dispuesto a pasar por alto esta vez, si alguien puede explicar el algoritmo detrás de la ‘auto’ configuración.

Tener un vistazo a la primavera de la propia javadocs, no da mucho más lejos aparte de decir que de forma inteligente para adivinar lo que usted necesita y hacer algo acerca de la condicional frijoles.

¿Alguien sabe qué se utiliza el algoritmo para determinar lo que debe ser cargado?

InformationsquelleAutor coderatchet | 2014-06-22

2 Comentarios

  1. 18

    En mi experiencia como un Resorte de Inicio de usuario de los factores básicos para la Primavera de Arranque para decidir qué auto-configuraciones estarán habilitados son:

    1) Las clases presentes en el classpath. Por ejemplo, si RabbitMQ y la Primavera AMQP clases están presentes, entonces el RabbitAutoConfiguration será habilitado. La correspondiente anotación es @ConditionalOnClass,

    2) La presencia o no de definido por el usuario frijoles. Por ejemplo, si todos los Spring Data JPA está presente en la ruta de clases, Inicio de la Primavera va a registrar un LocalContainerEntityManagerFactoryBean bean sólo si el usuario no lo ha hecho ya. Los frijoles registrado por el usuario ‘reemplazar’ la fábrica. La correspondiente anotación es @ConditionalOnMissingBean

    Como @DaveSyer menciona, por supuesto, usted puede utilizar la Primavera de Arranque sin @EnableAutoConfiguration si desea incluir la correspondiente configuración de su cuenta. O usted podría utilizar al menos drástica solución de la exclude campo de @EnableAutoConfiguration. Por ejemplo, si desea Primavera de Arranque para autoconfigurar todo excepto ActiveMQ, tendría que usar @EnableAutoConfiguration(exclude=ActiveMQAutoConfiguration.class)

    En mi opinión, no hay absolutamente ningún delito de aquí! Usted puede usar lo que quiera a partir de la Primavera de Arranque. Cuando usted no quiere algo que tiene que ofrecer, usted puede fácilmente optar por parcial o totalmente!

    También si usted desea conseguir un look de debajo de las mantas, usted puede agregar la propiedad

    logging.level.org.springframework.boot=DEBUG

    a application.properties y la Primavera de Arranque estará encantado de dar un informe detallado de lo que se auto-configurado y lo que no

    • ok, Así que tal vez estaba siendo un poco más dramático. gracias por la info!
    • Su bienvenida!
  2. 7

    Hay algo de documentación en el La Primavera De Inicio Guía De Referencia. No es muy complicado, y creo que difícilmente es un delito grave para incluir un montón de @Configuration que usted podría haber escrito de todos modos (porque eso es todo lo que hace). Siéntase libre de no usar @EnableAutoConfiguration si prefiere incluir las configuraciones individuales de forma individual.

    • El problema viene cuando algo no funciona como se esperaba. @EnableAutoConfiguration está muy bien para hoteles de cómo los blogs, pero un verdadero dolor de cabeza para depurar en nada moderadamente complejos. Algunos buena documentación sobre esta anotación y lo que puede ser deshabilitado sería muy bienvenido, si tienes un enlace?
    • Hay un enlace en mi respuesta. Y nosotros tenemos bastantes bastante complejas aplicaciones en producción con @EnableAutoConfiguration así que debería estar bien si vas a ir con el flujo. Como he dicho, siempre puedes no usarlo si no te gusta la magia.
    • Gracias, de hecho, encontré lo que estaba buscando en los registros en la final por habilitar la DEPURACIÓN para la primavera de arranque. Yo quería desactivar el BasicErrorController porque estaba pegado en un Resorte de Seguridad bucle de redireccionamiento y yo quería manejar mis errores solo utilizando el estándar de Spring MVC métodos

Dejar respuesta

Please enter your comment!
Please enter your name here