博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringIOC学习一
阅读量:5059 次
发布时间:2019-06-12

本文共 1964 字,大约阅读时间需要 6 分钟。

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\
        docs\spring-framework-reference\html\xsd-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>

转载于:https://www.cnblogs.com/wadmwz/p/7616676.html

你可能感兴趣的文章
学习python:day1
查看>>
css3动画属性
查看>>
第九次团队作业-测试报告与用户使用手册
查看>>
Equal Sides Of An Array
查看>>
CentOS笔记-用户和用户组管理
查看>>
Mongodb 基本命令
查看>>
Qt中QTableView中加入Check列实现
查看>>
“富豪相亲大会”究竟迷失了什么?
查看>>
控制文件的备份与恢复
查看>>
返回代码hdu 2054 A==B?
查看>>
Flink独立集群1
查看>>
iOS 8 地图
查看>>
20165235 第八周课下补做
查看>>
[leetcode] 1. Two Sum
查看>>
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>