zoukankan      html  css  js  c++  java
  • SpringIOC学习一

    Spring是一个轻量级的控制反转(IOC)和面向切面(IOP)的容器框架

    1.控制反转IOC(inversion of controller)
        IOC是一种概念,是把我们程序中类与类之间的依赖关系交给容器去处理,一般有两种方式:
            * 依赖查找DL(dependency lookup):程序根据查找方式,交给容器去查找
            * 依赖注入DI(dependency injection):程序不提供查找方式,提供合适的构造方法或者setter方法,让容器进行注入来解决依赖关系,spring的控制反转就是通过依赖注入来实现的
            
    2.什么叫依赖?
        简单的说,一个类实现某个功能需要另外一个类的帮助来实现(模拟一个web登陆验证的功能),详见UserService.java
        
    3.基于接口编程的开发方式
        当一个方法有多个实现的情况下,我们一般是基于接口的方式进行编程,详见UserServiceForInterface.java
        
    4.依赖注入
        依赖注入DI是指一个对象需要另外一个对象的时候,无需在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序
        依赖注入是目前位置最好的解耦方式,因为依赖关系是依靠配置文件的方式组织在一起,而不是在程序中的硬编码
        
    5:Spring的IOC容器通过依赖注入来实现程序之间的依赖关系,达到解耦的作用
        a : spring项目环境搭建需要的jar包
            * spring-beans-4.2.1.RELEASE.jar
            * spring-context-4.2.1.RELEASE.jar
            * spring-core-4.2.1.RELEASE.jar
            * spring-expression-4.2.1.RELEASE.jar
            * commons-logging.jar
            * hamcrest-core-1.3.jar
            * junit-4.11.jar
            * log4j-1.2.17.jar
            
        b:配置文件 applicationContext.xml,加上bean约束
            bean的约束在spring-framework-4.2.1.RELEASE
            docsspring-framework-referencehtmlxsd-configuration.html文件查看
            
            
    6:在spring文件上面实现依赖注入的两种方式
        1: 在配置文件定义我们的类    
        
         <!--相当于我们java代码的 UserService userService = new UserService()  -->
        <bean id= "userService"
                    class = "com.tz.spring.sysmanage.service.UserServiceForSpring"></bean>  
         
         <!--相当于我们java代码的 UserDao userDao = new UserDao()  -->
         <bean id = "userDao"
                 class = "com.tz.spring.sysmanage.dao.impl.UserDao"></bean>
                 
         <!--相当于我们java代码的 UserDaoOther userDaoOther = new UserDaoOther()  -->
         <bean id= "userDaoOther"
                 class= "com.tz.spring.sysmanage.dao.other.UserDaoOther"></bean>
        
        
        2:描述依赖关系有两种方式
        * 通过构造方法的方式注入:
            a:被依赖的类必须有构造方法
            b:在配置文件里面来描述依赖关系
            <bean id= "userService"  class = "com.tz.spring.sysmanage.service.UserServiceForSpring">
                   <constructor-arg ref="userDao"></constructor-arg>           
                    <constructor-arg ref="userDaoOther"></constructor-arg>             
               </bean>
        
        * 通过setter方法注入
            a:被依赖的类里面生成依赖类的setter方法
            b:在配置文件来描述依赖关系
            <bean id= "userService"
                    class = "com.tz.spring.sysmanage.service.UserServiceForSpring">
            <property name="userDao" ref="userDaoOther"></property>
               </bean>

  • 相关阅读:
    1.Oracle12cR1的集群件及其组件
    28.oracle监听开启trace file
    connection strings for sql server 2005
    MDAC(Introduce to Microsoft Data Access Components)
    动态链接导入库与静态链接库
    vue3.0小印象
    vue3.0中的vite如何引入markdown文件为页面
    算法
    适配器模式(转载)
    WEB即时通讯之 XMPP OPENFIRE strophe JAXL
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7616676.html
Copyright © 2011-2022 走看看