你的位置:首页 > Java教程

[Java教程]基于nutz框架理解Ioc容器

同样我们从问题入手去验证以及去理解Ioc容器都做了哪些事情:
1.nutz是有几种方式获取需要容器管理bean的信息?
    第一种是使用json格式的文件进行配置,如:    

    第二种:[email protected]       

    第三种:使用
2. 如何那么多的方式如何进行选择呢?
   我们自己实际的生产环境的用法是:   一般的依赖关系都是固定的,在运行的时候基本不变的,我们采用的是注解,   将可能变动的关系写到配置文件里。   比如:我们将项目中各个分层之间的service采用的是注解,         

        将数据库相关配置放到配置文件中,        

3.ioc容器是如何确定哪些Bean是容器需要管理的:
  问几个问题:  a.它是怎么知道哪些文件中配置是需要被容器管理的bean,[email protected]??       nutz提供了一个注解(@IocBy)专门用于在主模块类上指定扫描哪些文件以及注解。       

       有上图可以知道:       json方式配置的bean的加载器去webconfig/下,以及Linux下的两个路径下扫描。       注解方式配置的bean加载器将扫描com.uxuexi开头包下的类。  b.它是如何去扫描除本项目之外的jar包(一般都是自己创建的,不会扫描第三方)呢?       可以在项目启动的时候,nutz的ioc容器加载完毕之前手动将要容器管理的bean扫描到容器中。      
4. 何时开始创建这些被容器管理的bean?
      [email protected]配置在json格式文件中的类信息加载到一个map中。      

      就是上面圈住的那个map,其中key默认是这个类名。      而这个IocObject这个类主要就是记住这个类的信息:     

     就是说在服务器启动的时候nutz只是扫描注解和文件将需要被容器管理的bean的信息集中存储到一个地方中,并没有真正的创建这些bean的实例。
5.容器什么时候会创建真正bean的实例??
      分两种种情况:       1.第一种当服务启动的时候就需要获取容器中的bean实例,可以手动获取容器。          

       2.第二种是当我们的第一次http请求映射到的那个Module类,nutz会帮你去从ioc容器中取。           

6.都提供哪些Ioc的注入类型??
     构造函数注入:           

     属性注入:         

7.ioc容器在什么时候销毁???
    nutz通过将Filter的destroy方法在web容器停止运行的时候会将ioc容器销毁,    

    NutzLoading类中的方法:    

    就是将缓存中存放map清空。 

 

 


河源旅游景点大全深圳到河源旅游多少钱河源有什么旅游景点河源二日游攻略大全河源好玩的旅游景点2015年端午节高速免费吗? 2015年端午节是几月几号? 跟团旅游有哪些好处? 各种花开的时间是什么时候? 五一清远哪些景区可以漂流了?_清远漂流有哪些特色?_省内_康辉团购 广州花都故乡里特色是什么?花都故乡里在哪里? 广州花都故乡里最佳旅游季节?花都故乡里详细介绍? 广州花都故乡里有什么好玩的?花都故乡里什么时候去最好玩? 去阳朔玩要准备注意些什么呢? 北京西站有到机场的大巴吗? 从三亚市内怎么去凤凰机场? 北京西站退票窗口在哪里?退票要多长的时间呢? 深圳野生动物园官网?深圳海洋天地门票怎样预订? 深圳野生动物园坐几路大巴?深圳海洋天地几点有车? 七娘山攻略?深圳七娘山野炊山庄有哪些玩的? 深圳七娘山攻略?七娘山野炊山庄开车怎么走? CY2308SXI-5HT Datasheet CY2308SXI-5HT Datasheet CY2310ANZPVXI-1 Datasheet CY2310ANZPVXI-1 Datasheet CY2310ANZPVXI-1T Datasheet CY2310ANZPVXI-1T Datasheet 东莞到瑞金叶坪革命遗址旅游 东莞到瑞金叶坪革命遗址旅游 东莞到瑞金叶坪革命遗址旅游 东莞到瑞晶洞旅游 东莞到瑞晶洞旅游 东莞到瑞晶洞旅游 东莞到瑞丽边贸街旅游 东莞到瑞丽边贸街旅游 东莞到瑞丽边贸街旅游