-----------------------Spring-----------------------

一、Spring介绍


    1、Spring是什么?
        Spring是一个轻量级的JAVAEE应用开源框架
    2、Spring的好处(为什么要使用spring)?
        IOC:控制反转
        AOP:面向切面
        粘合剂:整合第三方的技术和框架


二、IOC


    1、耦合
        耦合:对象之间的依赖关系(service依赖于dao),耦合度越高维护的成本就越高
        产生耦合的原因:硬编码
    2、IOC
        IOC(Inverse of Control)控制反转:控制对象的创建;正传是自己new对象,反转是由工厂创建对象;
    3、自定义工厂的IOC解决程序耦合
        ①把service和dao配置到bean.properties
        ②读取bean.properties-->Properties(HashMap)
        ③通过反射创建对象,并装到Map(ioc容器)中
        ④使用对象时直接从Map中获取
    4、spring的IOC解决程序耦合
        ①pom.xml
            spring-context
        ②applicationContext.xml
            <bean id="userDao" class="com.jy.dao.UserDaoImpl"></bean>
            <bean id="userService" class="com.jy.service.UserServiceImpl"></bean>
        ③测试
            ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserService userService = ac.getBean("userService", UserService.class);
            userService.addUser();


三、DI


    1、什么是DI?
        DI(Dependency Injection)依赖注入:将依赖对象(dao)从容器中拿出来赋值给调用者(service)
    2、DI的方式
        1)构造方法注入
            要求:类中必须提供构造方法
            标签:<constructor-arg>
            ========给谁赋值=======
                name:构造方法的参数名
                index:构造方法参数的索引位置
            ========赋什么值=======
                value:基本类型
                ref:另一个bean标签的id值
            <constructor-arg name="userDao" ref="userDao"></constructor-arg>
            <constructor-arg index="2" value="2"></constructor-arg>
        2)set方法注入
            要求:类中必须提供set方法
            标签:property
            ========给谁赋值=======
                name:set方法的参数名
            ========赋什么值=======
                value:基本类型
                ref:另一个bean标签的id值
            <property name="userDao" ref="userDao"></property>
            <property name="age" value="18"></property>-->
        3)自动注入
            要求:类中必须提供set方法
            原理:遍历map,并判断每个bean的类型,若类型匹配则注入
            <bean autowire="byType">


四、BeanFactory和ApplicationContext


    BeanFactory:顶级接口,使用对象时才创建
    ApplicationContext:子接口,加载配置文件时就创建对象


五、spring bean五种作用域(bean放哪了)


    singleton:单例,默认,ioc容器
    prototype:多例,每次使用newInstance()
    request:request域
    session:session域
    application:application域

    单例和多例的使用场景?
        单例:dao、service、sqlSessionFactory
        多例:connection、sqlSession

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值