Spring的学习计划路线

Spring 学习:

---Day01

 定义:
        负责管理项目中的所有对象
        看做项目中的对象管家
        总结:Spring框架性质是属于容器性质的

 一.不排斥其它框架,还可以帮助其它的框架管理对象
        aop支持  loc思想  spring jdbc aop事务 junit测试支持

 二.Spring最基础的4个包
        beans,context,core,expression
        最基层除了导入这4个还需要导入日志包
          
 三.关于Spring插入文件的导入约束方式
        a.perferences中的XML Catalog,添加Spring框架中的xsd文件
        b.Key type选择scheme location 同时将xsd文件的后缀版版本移动到key后
        c.进入到xml文件,Design模式中的<beans></beans>,右键进入Add DTD Information
        添加xsi,进入到specify new namespace中select XML catolog entry添加xsd文件
        Namespace Name中删去xsd文件名字的后缀版本部分

    总结Spring导入步骤:
        1.导包
        2.创建一个对象
        3.书写配置注册对象到容器
        4.测试

四.Spring项目的概念:

        思想:
        1.IOC:Inverse of control 反转控制
            详细:
                将我们创建对象的方式反转了
                以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入
                但是Spring框架
                对象的的创建以及依赖的关系可以由spring完成创建及注入
                反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序来创建(spring)

        2.DI: Dependency Injection 依赖注入
            实现IOC思想需要DI作为支持,需要IOC的环境

            注入方式:
                    set方法注入
                    构造方法注入
                    属性直接字段注入
            注入类型:(spring支持 )
                    值类型注入   :8大基本数据类型
                    引用类型注入 :将依赖类型注入

        applicationContext & BeanFactory区别:
        
            BeanFactory(Spring最原始的接口) 实现类的功能较为单一
            特点:每次获得对象时才会创建对象

            而applicationContext是每次容器启动时直接把容器中对象全部创建好了,然后直接拿( getBean() )
            同时提供更多其它的功能

            web开发中使用applicationContext,资源比较匮乏的时候就用到BeanFoctory

            applicationContext的实现类:
                1.从类的路径下加载配置文件 ClassPathXmlApplicationContext("xxx.xml")
                2.从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx");


五.Spring配置详解
        三种创建Bean方式
        <!-- 创建方式1:此方法为空参的构造方式   -->
        <!-- 创建方式2:静态工厂创建  -->
        <!-- 创建方式3:实例工厂 -->

        scope属性:
             singleton(默认值):单例对象,被标识为单例的对象在spring容器中只会存在一个实例
             prototype:多例原型,标识为多例的对象,每次再获得才会创建,每次的创建都是新的对象
             request:web环境下,对象与request声明周期一致
             session:web环境下,对象与session声明周期一致


六.Spring的属性注入
        set方法注入
        构造函数注入:constructor-arg注入
           index:限定参数的顺序  type:限定构造函数的参数类型
        p名称空间注入
        spel注入

        <!-- 构造方法注入值 -->
        注意:必须要设置空参构造方法作为默认的构造方法,否则会报错
            <bean name="regUser2" class="com.yc.bean.RegUser">
                <constructor-arg name="username" value="tom" index="0" type="java.lang.Integer"></constructor-arg>
                <constructor-arg name="car" ref="car" index="1"></constructor-arg>
            </bean>

七.管理容器在项目中的生命周期
         要求不能每次都创建一个applicationContext 容器
         使用监听器
            需要配置监听,导入spring-web.jar
            在web配置文件web.xml中配置监听
             <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
            获得spring容器=>从Application域获得即可
                
            1 获得servletContext对象
            ServletContext sc = ServletActionContext.getServletContext();
            2.从Sc中获得ac容器
            WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
                

--Day02

一.Spring注解代替配置文件
        1.Catalog导入新的约束(context文件约束)
            导入时前缀不能继续为空
            
        2.@Component
          @Service   //service层
          @Controler //web层
          @Repository //dao层
             4种注解方式没有区别,只是用来区别,体现分层

            @Value("")来赋值要么放在属性上 要么放在set方法上
            但是放在属性上会破坏封装性(技术角度而言)

        对对象进行注解
            a.@Autowired  //自动装配   但是对象多的时候无法选择具体注入哪一个对象
              引入辅助注解
              @Quslifier("对象名")
            b.@Resource(name="xxxx")  //指定对象直接注入

二.Spring的整合测试Junit
        注解
        @RunWith(SpringJunit4ClassRunner.class)  帮助创建容器
        @ContextConfiguration("classpath:applicationContext.xml") //指定创建容器时使用哪个配置的文件

    三.Spring中的aop,提供支持aop的开发
      横向重复,纵向抽取<面向切面编程>

        动态代理:
            Proxy.newProxyInstance(
                classLoader,Interface[] arr,InvocationHandeler handler);

        Spring中aop概念:Spring可以为容器中管理的对象生成动态代理的对象
                   Spring帮助生成代理对象
        Spring中事项aop原理:动态代理,cglib代理
        (优先使用)动态代理:必须要有接口才可以产生被代理对象,如果没有接口将无法使用动态代理技术
              cglib代理:对目标对象进行继承代理(如果该对象被final修饰,则无法使用)           

四.Sping中的aop的演示

        1.spring-aop & spring-aspects
         & sprinngsources.org.aopallance
        & springsource.org.aspectj.weaver 包导入

        2.目标对象
        3.准备通知<对目标对象增强>
        4.配置进行织入,将通知织入目标对象中

---Day03
   

一.Spring整合JDBC
            Spring中提供了一个可以操作数据库的对象,对象封装了jdbc技术
                JDBCTemplate (JDBC模板对象):与DBUtils中的QueryRunner极其相似
            
            Jar包的导入:6个基础包
                        Spring-test
                        Spring-aop
                        Junit4类库
                        c3p0连接池
                        JDBC驱动
                        Spring-jdbc
                        Spring-tx

二.Spring读取DB.properties
    <context:property-placeholder location="classpath:....">
   

三.Spring中的事务管理
        Spring封装了事务管理的代码<提供一个接口 PlatformTransactionManager接口 -->  TransactionTemplate 事务模块的对象>
        事务的操作:
                打开事务
                提交事务
                回滚事务
                
        Spring管理的几个事务的属性:
                        1.事务的隔离级别
                                    读未提交
                                    读已提交
                                    可重复读
                                    串行化
                        2.事务是否只读
                                    true<只读>/false<可操作>
                        3.事务的传播行为
                        4.Spring管理事务的方式
                                编码式<了解>
                                    将核心事务管理器配置到Spring容器
                               *xml配置(aop)
                               *注解配置(aop)
    
        Spring准备的aop事务通知:
                1.导入使用aop需要的jar包
                2.导入新的约束
                        Spring-tx.xsd约束
                    
            
                            
    
                        


   


 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值