A07Application.java
package com.lucifer.itheima.a07;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class A07Application {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(A07Application.class,args);
context.close();
}
//输出结果为
// 2023-11-08 19:52:53.870 INFO 55612 --- [ main] com.lucifer.itheima.a07.Bean1 : 初始化1
// 2023-11-08 19:52:53.870 INFO 55612 --- [ main] com.lucifer.itheima.a07.Bean1 : 初始化2
// 2023-11-08 19:52:53.870 INFO 55612 --- [ main] com.lucifer.itheima.a07.Bean1 : 初始化3
@Bean(initMethod = "init3")
public Bean1 bean1(){
return new Bean1();
}
//输出结果为
// 2023-11-08 19:56:02.452 INFO 53212 --- [ main] com.lucifer.itheima.a07.Bean2 : 销毁1
// 2023-11-08 19:56:02.452 INFO 53212 --- [ main] com.lucifer.itheima.a07.Bean2 : 销毁2
// 2023-11-08 19:56:02.452 INFO 53212 --- [ main] com.lucifer.itheima.a07.Bean2 : 销毁3
@Bean(destroyMethod = "destroy3")
public Bean2 bean2() {
return new Bean2();
}
}
Bean1.java
package com.lucifer.itheima.a07;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import javax.annotation.PostConstruct;
@Slf4j
public class Bean1 implements InitializingBean {
@PostConstruct
public void init1(){
log.info("初始化1");
}
@Override
public void afterPropertiesSet() throws Exception {
log.info("初始化2");
}
public void init3(){
log.info("初始化3");
}
}
Bean2.java
package com.lucifer.itheima.a07;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.DisposableBean;
import javax.annotation.PreDestroy;
@Slf4j
public class Bean2 implements DisposableBean {
@PreDestroy
public void destroy1() {
log.info("销毁1");
}
@Override
public void destroy() throws Exception {
log.info("销毁2");
}
public void destroy3(){
log.info("销毁3");
}
}