spring 之浅析1
来源:互联网 发布:保研夏令营 知乎 编辑:程序博客网 时间:2024/06/14 10:35
我们知道,在spring中,会通过一个listener来来监听事件,
org.springframework.web.context.ContextLoadListener。
因为在webapp初始化之后,root web application context 就能够当做ServletContext作用于整个webapp,它能够被重新获得,通过spring中的方法,也就是说spring能够得到获得ServletContext,比如Servlet,Filter,JSP,
如下:
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(servletContext);
The core bean factory
spring有个作用就是防止大量的工厂和单例模式的出现,bean factory提供一个统一的借口来操作所有的bean,不管是粗劣的还是设计优良的,让所有的子系统意识不到spring的存在。
顶级接口beanfactory中的方法:
getBean(String name)
getBean(String name,Class requiredType)
containsBean(String name)
isSingleton(String name)
getAliases(String name)
调用getBean方法,默认是返回同一个示例,如果是prototype的bean ,就会返回不同的示例。其他方法,看文字就能知道意思了。
在各个beanfactory中,如果子系统没有找到需要的就会到parent beanfactory中去找,直到root factory,基于此,各个子接口可以提供各种各样丰富的拓展,比如说:
listablebeanFactory 支持列出所有factory中的bean的名字,借口如下:
int getBeanDefinitionCount();
String[] getBeanDefinitionNames();
String[] getBeanDefinitionNames(Class type);
boolean containsBeanDefinition(String name);
如果一个类所依赖的类,只有在runtime的时候才知道到底依赖谁,这个接口就可以用上。
beanfactory是一个中心,他把各种各样的应用都集成到spring中去,DAOs,business object,或者controllers,如果想独立出来用spring的话,spring发行了一个叫做 spring-core.jar的jar包能够嵌入到任何系统中去。
Resource resource = new ClassPathResource("style.xml");
ListableBeanfactoy bf = new XmlBeanFactory(resource);
他的一个可替代的方案:
ListableBeanfactoy bf = new DefaultListableBeanfactoy();
XmlbeanDefinitionReader reader = new XmlbeanDefinitionReader(bf);
Resource resource = new ClassPathResource("style.xml");
reader.loadBeanDefinitions(resource);
这就是spring bean factory 配置的灵活性,以上所有原则可以运用在任何场所。
To be continue........
- spring 之浅析1
- 浅析Spring之sessionFactory
- spring之aop浅析
- spring容器原理之浅析
- spring源码浅析之ioc
- Spring高级运用之浅析Spring Aware
- spring + ibatis 配置文件浅析 之 web.xml
- Spring深度学习之架构浅析(一)
- Spring框架之浅析AOP切面编程
- 浅析Spring
- 做一个合格的程序猿之浅析Spring IoC源码(四)分析BeanPostProcessor(1)
- 做一个合格的程序猿之浅析Spring IoC源码(四)分析BeanPostProcessor(1)
- 做一个合格的程序猿之浅析Spring IoC源码(十一)Spring refresh()方法解析后记1
- spring + ibatis 配置文件浅析之 applicationContext-ibatis.xml
- Spring浅析之注解之一@Service、@Component、@Controller、@Repository
- Spring高级运用之浅析多线程与计划任务
- Spring浅析之注解之二:spring支持的JSR-250注解之:@PostConstruct、@PreDestroy
- Spring FactoryBean源码浅析
- 动手之前先想想
- 递归法求三角形数(1,3,6,10,15...)
- 一个识别文件的工具
- jQuery EasyUI 教程
- jQuery 解析 JSON 数据
- spring 之浅析1
- @Resource 写错位置导致的错误
- HDU - 1010 - Tempter of the Bone(dfs)
- onethink的hook机制
- java.net.SocketException: Too many open files 问题的解决办法
- HTML站内搜索引擎
- iReport 下载地址
- R语言与机器学习学习笔记(分类算法)(5)神经网络
- Java常量