发表于: 2018-01-04 21:03:19

1 519


一 、今天完成的事情


 1、全面学习spring IOC的思想和操作以及原理,围绕深度思考中的内容来进行学习和小课堂的准备

 

  

  spring概念

  

  1、是一个框架

  2、是一个开源的轻量级框架

  3、是一个一站式框架   用了这个框架,开发就可以一步到位  因为在J2EE的三层结构中,spring为每一层都提供了不同的解决技术。

比如:web层: spring MVC

    service层:spring IOC

    dao层:spring的JDBCtemplate


4、两个核心内容

    a、IOC

    b、AOP(之后再学习)

    IOC:控制反转

    -有一个类,在类里面有方法,我们要调用这个类里面的方法,那我们必须创建这个类的对象,使用对象来调用方法,而我们一般创建类的对象的过程,都需要用到关键词“new”来完成。 

    -通过控制反转,我们可以把对象的创建不是通过“new”的方式来实现,而是交给spring进行配置来创建类的对象

    -我感觉ioc对于传统操作在两个方面进行了优化和改良。一个是对象的创建,一个就是属性的注入

   

   IOC的操作分为两种

  1、ioc的配置文件方式(.xml)

  2、ioc注解方式



 

   ioc是怎样实现的呢

   ioc中使用的技术(实现技术)

   a、xml配置文件

   b、dom4j(读写xml)

   c、工厂的设计模式

   d、反射

    

   第一步  创建xml配置文件,配置要创建对象的类

   第二步  创建工厂类,使用dom4j解析xml配置文件+反射 代码如图

 

用Bean工厂的方式实现了对象的创建,降低了类与类之间的耦合度,为代码的维护和修改提供了很大的便利



 spring的基于配置文件(xml)的操作

     1、bean实例化有三种方式

       一、使用类的无参数的构造创建(最常用的创建对象方法)

       二、使用静态工厂创建

          (1)、创建静态方法,返回类的对象

       三、使用实例工厂创建

          (2)、创建一个不是静态的方法,返回类的对象     

       

       Bean标签的常用属性:id:在规范内随便取,拿对象出来用的时候getBean()内匹配得上就行

       class:需要创建对象的类的路径  

       name:和id一个用法,可以用特殊符号 

      scope:单例和多例的选择


 

  无参配置

 



静态工厂类


静态工厂配置




实例工厂类


实例工厂配置




        属性注入

     1、创建对象的时候,向类里面的属性里面设置值

       

     2、传统的属性注入的三种方式

         a、使用set方法注入

         b、有参数的构造注入

         c、使用接口注入

     3、在spring框架中,常用前两种属性注入方式,尤其是set方法注入

  


传统的注入方式如图

 



使用spring IOC的方式:


  1、使用含参数的构造函数注入方式

    创建类

 




使用set方法注入属性(常用)





     注入对象类型的属性(重点) ccc

     1、创建一个A类和B类


     2、在A类里面得到B的对象



     实现过程

     1、在Boy里面把Girl作为类型属性

       2、生成Girl类型的属性的set方法

   

     3、在配置文件中完成注入属性






spring注解

1、代码中特殊的标记,使用注解能完成一些相关的功能

2、可以替代配置文件,但是不能完全替代配置文件


创建对象一共有4个注解  @Component     @Controllker:WEB层     @Service:业务层    @Repository:持久层

   


注解扫描








 注解注入属性     @Autowired:自动装配   @Resource:依据name确定注入对象



配置同样用注解扫描



最后,所有的测试结果都基于springIOC容器框架测试通过




IOC和DI的关系的理解

    

1、ioc:控制反转,把对象的创建交给spring进行配置

2、DI:依赖注入,向类里面的属性中设置值

依赖注入和控制反转是对同一件事情的不同描述,简单的说就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。



二、明天计划的事情


 1、知识点还没归纳,看起来比较乱,需要花时间梳理


 2、小课堂希望能合格,我相信我有一个好师兄


 3、如果小课堂合格了,就继续学习spring MVC




三、遇到的问题

 

  1、脑子太笨,消化知识太慢


  2、小课堂选了个很不会的题目,准备得也不够充分,下次注意


 



四、收获


 几乎掌握了springIOC的用法


task2开始时间:2017.01.03

预计demo时间:2017.01.18

可能有延期风险

原因:之前没有预计到小课堂的时间,准备小课堂可能会花去一小部分时间,希望能按时完成


http://task.ptteng.com/zentao/project-task-350.htm



返回列表 返回列表
评论

    分享到