Entrevistas expuestos: ciclo de vida springbean

Primavera COI contenedor de grano de ciclo de vida 's es el siguiente :

        . ① ejemplar del Bean es creado por el método constructor o de la fábrica: llamar al constructor
        ② para ajustar el valor de la propiedad y otras referencias bean: Call colocador
        método postProcessBeforeInitialization ③. Bean ejemplo haba pasa al preprocesador
        ④ frijol llama al método initialize :. Init-método
        ⑤. Ejemplo haba pasa al método postProcessAfterInitialization haba postprocesador
        ⑥. Frijol listo para su uso
        ⑦ Cuando el recipiente está cerrado, la destrucción de la llamada al método de la haba :. Destruye-método.

 

De frijol de inicialización y destrucción métodos :
 
nodo de frijol puede init-método y el método de destruir método para inicializar y configurar el método de destrucción de frijol:
<id = clase de bean "persona" = "com.demo.spring.bean.Person" init-method = "init" destruir-method = "destruir" >
    <Property name = "nombre" value = "jack"> </ property>
</ Bean>

 

Nota: interfaz Método ApplicationContext no es recipiente cerrado, por lo que su uso como un ApplicationContext referencia de interfaz contenedores COI, destruir-método no funcionará cuando se requiera utilizar ApplicationContext subinterface ConfigurableApplicationContext .
 
Haba de post-procesadores detalladas :
    Postprocesador Bean: Frijol Primavera oferta especial
    . ① postprocesador haba permite proceso de inicialización de llamada (es decir: después de que el método del atributo nodo bean init-método correspondiente) antes y después del procesamiento adicional Bean.
    . ② haba postprocesador uno por uno para todos el recipiente de granos ejemplo COI procesado, en lugar de una única instancia aplicaciones típicas son: Comprobación de corrección propiedad de un Bean o cambio de acuerdo con ciertos criterios de la haba
Propiedad.
    ③. Postprocesador para Bean, necesidad de implementar la interfaz BeanPostProcessor
            public class PersonPostProcessor implementos BeanPostProcessor {
                    / **
                    * Arg0: ejemplo COI del recipiente de granos
                    * Arg1: contenedor de la COI en el nombre del bean
                    * /
                    @Anular
                    Objeto pública postProcessAfterInitialization (arg0 Object, String arg1) {lanza BeansException
                            si (arg0 instanceof persona) {
                                        System.out.println ( "postProcessAfterInitialization");
                                        Persona persona = (Person) arg0;
                                        string name = person.getName ();
                                if (! name.equals ( "AAAA")) {
                                        System.out.println ( "Valor nombre debe ser BBBB!");
                                        person.setName ( "BBBB");
                                }
                        }
                        volver arg0;
                  }
            @Anular
            Objeto pública postProcessBeforeInitialization (arg0 Object, String arg1) {lanza BeansException
                    System.out.println ( "postProcessBeforeInitialization");
                volver arg0;
                }
            }
    ④. Necesidad postprocesador haba a ser configurado en un recipiente COI, pero no es necesario especificar la identificación automática del contenedor atributo id primavera IOC que es un postprocesador haba de utilizar automáticamente. <Clase bean = "com.demo.spring.bean.PersonPostProcessor" / >

 

Publicado 11 artículos originales · ganado elogios 11 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zh554275855/article/details/80440644
Recomendado
Clasificación