ApplicationContext.puml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. @startuml
  2. title SpringApplication context 分析过程
  3. class SpringApplication {
  4. private boolean webEnvironment;
  5. }
  6. interface ConfigurableWebApplicationContext extends ConfigurableApplicationContext,WebApplicationContext{
  7. void setServletContext(ServletContext servletContext);
  8. void setServletConfig(ServletConfig servletConfig);
  9. void setConfigLocation(String configLocation);
  10. String[] getConfigLocations();
  11. }
  12. interface ApplicationContext extends HierarchicalBeanFactory,MessageSource,ApplicationEventPublisher,ResourcePatternResolver{
  13. String getId();
  14. String getApplicationName();
  15. String getDisplayName();
  16. long getStartupDate();
  17. ApplicationContext getParent();
  18. AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
  19. }
  20. interface ConfigurableApplicationContext{
  21. }
  22. interface Lifecycle{
  23. }
  24. interface Closeable{
  25. public void close() throws IOException;
  26. }
  27. interface EnvironmentCapable{
  28. Environment getEnvironment();
  29. }
  30. interface ListableBeanFactory extends BeanFactory{
  31. String[] getBeanNamesForType(ResolvableType type);
  32. }
  33. interface BeanFactory{
  34. Object getBean(String name) throws BeansException;
  35. <T> T getBean(String name, Class<T> requiredType) throws BeansException;
  36. <T> T getBean(Class<T> requiredType) throws BeansException;
  37. }
  38. interface HierarchicalBeanFactory extends BeanFactory{
  39. BeanFactory getParentBeanFactory();
  40. }
  41. interface MessageSource{
  42. String getMessage(String code, Object[] args, String defaultMessage, Locale locale);
  43. }
  44. interface ApplicationEventPublisher{
  45. void publishEvent(ApplicationEvent event);
  46. }
  47. interface ResourcePatternResolver extends ResourceLoader{
  48. Resource[] getResources(String locationPattern) throws IOException;
  49. }
  50. interface ResourceLoader{
  51. Resource getResource(String location);
  52. ClassLoader getClassLoader();
  53. }
  54. ApplicationContext <|-- ConfigurableApplicationContext : 继承关系
  55. Lifecycle <|-- ConfigurableApplicationContext : 继承关系
  56. Closeable <|-- ConfigurableApplicationContext : 继承关系
  57. EnvironmentCapable <|-- ApplicationContext:继承关系
  58. ListableBeanFactory <|-- ApplicationContext:继承关系
  59. @enduml