Spring 学习总结

一:spring的概念

        1.1:spring是一个开源的轻量级的框架

        1.2:spring的核心主要有两部分:

                   1.2.1:aop:面向切面编程

                   1.2.2:ioc:控制反转(就是实例化不是new出来,而是交给spring配置创建)

         1.3:spring是一站式的框架:

                  1.3.1:spring在Javaee三层结构中,每一层都提供不同的解决技术  

                               web层:有springMVC技术

                               service层:spring的ioc的技术

                               dao层:spring的jdbcTempalte

二:Spring的ioc操作:

          就是对象的创建交给Spring进行操作,创建对象有两种方式  ioc的配置文件方式、ioc的注解方式

        2.1:ioc的底层原理是应用  xml配置文件、dom4j、工厂设计模式、反射........等技术来实现功能              

        2.2:ioc入门案例:

                2.2.1:第一步:导包  .........

                2.2.2:第二步:创建类,在类里面创建方法

        Spring 学习总结_第1张图片

               2.2.3:第三步:创建Spring配置文件,配置创建类

                                 (1)Spring的核心配置文件名称和位置不是固定的,建议放到src下面,

                                         官方建议名称  是applicationContex.xml,但是名称可以随意写

                                  (2)在配置文件中引入schema约束


                                  (3)配置对象创建(这里xml(就是配置文件方式)配置)

                                        Spring 学习总结_第2张图片

                                  (4):测试代码(只是单独使用Spring的时候使用)

                                    Spring 学习总结_第3张图片

    三:Spring的bean的管理(xml方式)    

                 就是通过配置文件方式创建对象。

                 3.1: bean实例化的方式

                           (1) 第一种:使用类的无参数构造(重点)

                        

                        这种方式实例化对象,就是通过反射找无参构造,所以无参构造是必须的

                           (2):使用静态工厂创建

                                          创建静态方法,返回类对象

                    Spring 学习总结_第4张图片

                                        在配置文件中

        

                  3.2:bean标签常用的属性

                            (1)id属性:起名称,随意起,id属性值,不能包含特殊符号

                                    根据id值得到匹配的对象

                            (2)class属性:创建对象所在类的全路径

                            (3)name属性:和id属性一样,id属性值不包括特殊符号,但是name属性值可以包含特殊符号

                            (4)scope属性:    singleton:默认值,单实例

                                                             prototype:多实例(因为struts2的Action是多实例)

四:属性注入:

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

            4.2:属性注入的方式介绍(三种方式)

                    (1):使用set方法注入()

                    (2):使用有参数的构造方法注入

                     (3):使用接口注入

                    Spring 学习总结_第5张图片

             4.3:在Spring框架里面,支持前两种方式

                       (1):set方法注入(重点)

                        (2):有参数构造注入

         

                    4.3.1:使用有参数构造注入属性

                             Spring 学习总结_第6张图片       

Spring 学习总结_第7张图片

                        4.3.2:使用set方法注入属性(重点)

                        Spring 学习总结_第8张图片

Spring 学习总结_第9张图片

    

 五:注入对象类型属性(重点)       

        需求:在service中得到dao对象

        5.1:实现过程

                    5.1.1:在service里面把dao作为类型

                    5.1.2:在service中生成dao类型属性的set方法

Spring 学习总结_第10张图片

                    5.1.3:配置文件中注入关系

            Spring 学习总结_第11张图片


            5.2:P名称空间注入

                   (1) 在约束上面引入P名称空间的路径


                   (2)在配置



六:注入复杂类型属性

        数组、list集合、map集合、properties

Spring 学习总结_第12张图片

Spring 学习总结_第13张图片


七:IOC和DI区别

       (1)IOC:是控制反转,把对象创建交给Spring进行配置

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

        (3)关系:依赖注入不能单独存在,需要在IOC基础之上完成操作


八:Spring的bean管理(注解方式)重要现在用的多

       8.1: 注解开发准备,导包

       8.2:创建类,创建方法

       8.3:创建Spring配置文件,引入约束(注解约束...)

       8.4:注解开发就得,开启注解扫描     

                Spring 学习总结_第14张图片

        8.5:注解创建对象

                8.5.1:在创建对象的类上面使用注解实现

                            

                8.5.2:在测试类中写如下代码,看是否创建对象成功。

            Spring 学习总结_第15张图片

        

            8.6:创建对象有四个注解(目前这几个的功能都一样,都是创建对象)

                        @Component

                        @Controller

                        @Service

                        @Repository

            8.7:创建对象是单实例还是多实例

                    Spring 学习总结_第16张图片

        

                    Scope:singleton是单实例

                                 prototype是多实例

            8.8:注解注入属性:

                    需求:在service中得到dao对象

                    (1)创建dao和service对象

                            Spring 学习总结_第17张图片


                    (2)在service类里面定义dao'类型的属性

                            注入对象属性第一个  注解   @Autowired    

            Spring 学习总结_第18张图片

                            注入对象属性第二个  注解   @Resource(常用,因为这个可以注明对象名)

Spring 学习总结_第19张图片

        

Spring 学习总结_第20张图片


    8.9:一般开发都是配置文件和注解混合使用

            创建对象使用配置文件方式

            注入属性使用注解方式实现


九:AOP

        9.1:aop:面向切面编程

         9.2:采取横向抽取机制

         9.3:AOP操作术语

                   (1):切入点:就是实际增强的方法

                    (2):通知/增强:增强的逻辑,例如:扩展日志功能,日志功能称为增强

                    (3):切面:把增强用到具体的方法上面,就是把增强用到切入点上

Spring 学习总结_第21张图片

            9.4:Aop操作

                    (1):导相关包

                    (2):创建Spring核心配置文件,导入aop的约束


                    (3):使用表达式配置切入点

                                 常用的表达式:

                               

                            execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

                            例如:

                                (1) execution(* cn.itcast.aop.Book.add(..))

                                (2execution(* cn.itcast.aop.Book.*(..))

                                (3execution(* *.*(..))

                   (4):AOP操作案例

                                   

                

Spring 学习总结_第22张图片

Spring整合web项目

                         每次访问Action的时候,都会加载Spring配置文件,耗费资源

            解决方案:

                         在服务器启动的时候 创建对象加载配置文件    , 

                          在Spring里面不需要我们自己代码实现,Spring已经封装好了,只需要配置就可以完成加载Spring配置文件在服务器启动时候。

                只需要配置一个监听器

            

               这样得指定Spring核心配置文件的位置,(因为默认找到官方要求的.....) 

Spring 学习总结_第23张图片



十:基于aspectj的注解aop操作

        10.1:创建对象

                    

          10.2:在Spring核心配置文件中,开启aop操作

        

           10.3:在增强类上面使用注解完成aop操作

Spring 学习总结_第24张图片


十一:Spring的jdbcTemplate操作

          11.1 : 因为Spring是一站式框架,所以针对每一层都有解决技术

                    (1):dao层,使用jdbcTemplate

                        jdbcTemplate 就是对jdbc的封装

           11.2:使用jdbcTemplate实现功能

                       (1)导包(2)创建对象(3)创建jdbcTemplate对象,设置数据源(4)调用jdbcTemplate对象中的方法实现操作

                   11.2.1:增加.....修改.....删除.....

                                Spring 学习总结_第25张图片

                    11.2.2:查询

                        (1):查询返回多少条数据

Spring 学习总结_第26张图片

                       (2):查询返回对象

   Spring 学习总结_第27张图片         Spring 学习总结_第28张图片

Spring 学习总结_第29张图片

                    (3)查询返回list集合

        Spring 学习总结_第30张图片


十二:Spring配置连接池和dao使用jdbcTemplate

            12.1:Spring配置c3p0连接池

                        12.1.1:导包

                         12.1.2:创建Spring配置文件,配置连接池

            下面这是c3p0连接池的原始用法 

   Spring 学习总结_第31张图片                 

            下面是c3p0在配置文件中用法

Spring 学习总结_第32张图片

            

            12.2:dao中使用jdbcTemplate

                      12.2.1:创建service和dao类,在配置文件中创建对象,在service中注入dao对象


Spring 学习总结_第33张图片

                    12.2.2:创建jdbcTemplate对象,把模板对象注入到dao对象里面

Spring 学习总结_第34张图片


Spring 学习总结_第35张图片

                12.2.3:在jdbcTemplate对象中注入dDataSource




十三:Spring事物管理api

        13.1:Spring事务管理方式

                声明式事物管理

                    (1):基于xml配置文件实现

                    (2):基于注解实现

        13.2:声明式事物管理(xml配置)

                    配置文件方式使用aop思想配置

                    13.2.1:配置事务管理器:

            

                    13.2.2:配置事物增强

Spring 学习总结_第36张图片

                13.2.3:配置切面



    13.:3:声明式事物管理(注解)简单常用

                13.3.1:配置事物管理器


                13.3.2:配置事物注解(就是开启注解扫描)


                13.3.3:在要使用事务的方法所在的类上面添加注解











    

你可能感兴趣的:(spring)