una tipos salir salga reventar quitan que placer piel mania llama hinchan granos grano fotos evitar esta espinilla duros duelen como apunto acne java spring

java - tipos - Primavera: asegúrese de que un grano en particular se inicialice primero



placer al reventar granos (4)

Tengo una biblioteca que realiza la configuración y el tiempo de ejecución de log4j (sin log4j.properties o log4j.xml). He definido un bean con una clase llamada MyLoggerFactory y quiero que este sea el primer bean que se inicialice con la primavera. He visto que un problema ya se ha presentado en la primavera para tener soporte para el orden de inicialización, pero me preguntaba si había una manera de marcar un frijol como el primer frijol que se inicializaría en un contenedor de primavera.



Puede @Autowired una @Configuration en la configuración @ principal

@Configuration @Import(BusinessConfig.class, EarlyBeans.class) public class MainConfiguration { // The bean defined in EarlyBean will be loaded before // most beans references by MainConfiguration, // including those coming from BusinessConfig @Autowired EarlyBean earlyBean; } @Configuration public class EarlyBeans { @Bean public Void earlyBean(ApplicationContext appContext) { // .getBeansOfType allows to call for beans which might not exist appContext.getBeansOfType(TechnicalBean.class); return null; } }


Puede dividir el contexto de la aplicación como múltiple y usar la importación en el contexto de la aplicación principal. Puede poner la configuración principal del entorno primero en el orden de importación y luego continuar agregando otros archivos.

Podría ser como a continuación.

<!-- Import environment properties settings. --> <import resource="Spring-Env.xml"/> <!-- Import All the other Application contexts. --> <import resource="Spring-MainApplicationContext.xml"/>


Tus opciones son:

  1. Use la anotación @DependsOn (disponible después de la primavera 3.0.x) o depends-on atributo xml y haga que todas las clases que usan los registradores configurados dependan de la fábrica del registrador
  2. Convierta la fábrica en una fábrica real para los leñadores, e inyecte los registradores en los granos en lugar de llamar directamente a la fábrica; esto es esencialmente lo mismo que la opción 1, excepto que la dependencia es implícita. Esta es la opción que recomendaría.
  3. Mueva el código de inicialización a una parte de su código donde se especifica el orden de la llamada: el método main() o un ServletContextListener registrado antes del que inicializa Spring.

No hay forma de definir explícitamente el orden de inicialización en Spring y probablemente nunca lo será; no hay forma de definir una semántica útil para él, ya que puede cargar muchos archivos de configuración de contexto de aplicación que pueden tener ordenados conflictivos. Aún no he visto un caso en el que no se haya podido realizar el pedido deseado refacturando su código para que se ajuste mejor al patrón de inyección de dependencia.