Struts2源码浅析-Container
来源:互联网 发布:php function use as 编辑:程序博客网 时间:2024/05/18 03:34
Container容器接口定义
public interface Container extends Serializable { /** * Default dependency name. */ String DEFAULT_NAME = "default"; /** * 对当前对象 执行依赖注入 * 引用了@Inject注解的 方法 字段 构造器 参数 * @param o */ void inject(Object o); /** * 创建实例 然后再依赖注入 */ <T> T inject(Class<T> implementation); /** * 返回容器中 类型 和名称匹配的bean */ <T> T getInstance(Class<T> type, String name); /** * 返回容器中 类型匹配的bean 可能是多个 */ <T> T getInstance(Class<T> type); /** * 返回容器中 类型匹配的 bean名称 可能是多个 */ Set<String> getInstanceNames(Class<?> type); /** * Sets the scope strategy for the current thread. */ void setScopeStrategy(Scope.Strategy scopeStrategy); /** * Removes the scope strategy for the current thread. */ void removeScopeStrategy();}
容器的实现类
class ContainerImpl implements Container {}
容器的创建 是由ContainerBuilder create方法完成
public Container create(boolean loadSingletons) {ensureNotCreated();created = true;//factories 保存了 bean的定义 常量的定义//ContainerImpl factories factoryNamesByTypefinal ContainerImpl container = new ContainerImpl(new HashMap<Key<?>, InternalFactory<?>>(factories));if (loadSingletons) {container.callInContext(new ContainerImpl.ContextualCallable<Void>() {public Void call(InternalContext context) {for (InternalFactory<?> factory : singletonFactories) {factory.create(context);}return null;}});}// xml配置 bean节点 属性static 为true 默认为false//com.opensymphony.xwork2.config.providers.XmlConfigurationProvider#register() line 210container.injectStatics(staticInjections);return container;}
- Struts2源码浅析-Container
- Struts2源码浅析-初始化
- Struts2源码浅析-ConfigurationProvider
- Struts2源码浅析-ResultType
- Struts2源码浅析-ConfigurationProvider
- Struts2容器Container源码阅读笔记
- struts2源码浅析(一)
- struts2源码浅析(二)
- struts2源码浅析(三)
- struts2源码浅析(四)
- Struts2源码浅析-请求处理
- Struts2源码浅析-请求处理
- Struts2中StrutsPrepareAndExecuteFilter源码浅析
- 浅析Delphi Container库
- struts2的Container
- struts2浅析
- dubbo源码之Container
- Struts2(XWork)中的Container 一
- 提高代码可读性的十大注释技巧
- Java异常的分类
- 给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
- 保持service一直在后台运行
- 程序员应该用程序来思维,有空来研究一下狼 羊 草和农夫过河,将算法转换为代码《转》
- Struts2源码浅析-Container
- 成为一名优秀程序员所需要知道的那些事
- 多线程安全问题
- linux 修改系统时间命令
- PHP Socket 编程
- 初学Java,IO之推回输入流(四十四)
- 千万级别mysql合并表快速去重
- 苹果电脑数据备份和数据恢复方法+时间机器
- 关于读C++语言的设计和演化