实现接口
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class College implements InitializingBean, DisposableBean {
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("Initial method is calling.");
}
@Override
public void destroy() throws Exception {
System.out.println("Destroyed method is calling.");
}
}
注入
import com.michael.annotation.demo.POJO.College;
import org.springframework.context.annotation.*;
@Configuration
public class MyConfig {
@Scope("singleton")//这里可以不写,Bean默认为单例
@Bean("St Andrews")
public College college(){
System.out.println("The Bean is created.");
return new College();
}
}
测试
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import static java.lang.System.out;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(DemoApplication.class, args);
out.println("The container has been initialized.");
for(String name : applicationContext.getBeanDefinitionNames()){
if(!name.contains("."))
out.println(name);
}
out.println("The container has been destroyed.");
}
}
输出
The Bean is created.
Initial method is calling.
2020-03-24 18:32:22.375 INFO 24519 --- [ main] c.m.annotation.demo.DemoApplication : Started DemoApplication in 0.611 seconds (JVM running for 0.903)
The container has been initialized.
demoApplication
test
myConfig
personService
St Andrews
propertySourcesPlaceholderConfigurer
taskExecutorBuilder
applicationTaskExecutor
taskSchedulerBuilder
The container has been destroyed.
Destroyed method is calling.