• Spring框架学习笔记(一)


    Spring概念

    1 spring是开源的轻量级框架

    2 spring核心主要两部分:

    (1)aop:面向切面编程,扩展功能不是修改源代码实现

    (2)ioc:控制反转

    - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象

    - 把对象的创建不是通过new方式实现,而是交给spring配置创建类对象

    3 spring是一站式框架

    (1)spring在javaee三层结构中,每一层都提供不同的解决技术

    - web层:springMVC

    - service层:spring的ioc

    - dao层:spring的jdbcTemplate

    4 spring版本

    spring4.x

    Spring的ioc操作

    1 把对象的创建交给spring进行管理

    2 ioc操作两部分:

    (1)ioc的配置文件方式

    (2)ioc的注解方式

    IOC底层原理

    1 ioc底层原理使用技术

    (1)xml配置文件

    (2)dom4j解决xml

    (3)工厂设计模式

    (4)反射

    2 画图分析ioc实现原理

    IOC入门案例

    第一步 导入jar包

    (1)解压资料zip文件

    Jar特点:都有三个jar包

    (2)做spring最基本功能时候,导入四个核心的jar包就可以了

    (3)导入支持日志输出的jar包

     

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

    第三步 创建spring配置文件,配置创建类

    (1)spring核心配置文件名称和位置不是固定的

    - 建议放到src下面,官方建议applicationContext.xml

    (2)引入schema约束

     

    (3)配置对象创建

    第四步 写代码测试对象创建

    (1)这段代码在测试中使用

    测试结果如下:

    Spring的bean管理(xml方式)

    Bean实例化的方式

    1 在spring里面通过配置文件创建对象

    2 bean实例化三种方式实现

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

    类里面没有无参数的构造,出现如下异常

     第二种 使用静态工厂创建

    (1)创建静态的方法,返回类对象

     测试结果如下:

    第三种 使用实例工厂创建

    (1)创建不是静态的方法,返回类对象

    结果如下:

    Bean标签常用属性

    (1)id属性:起名称,id属性值名称任意命名

      - id属性值,不能包含特殊符号

      - 根据id值得到配置对象

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

    (3)name属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号

    (4)scope属性

      - singleton:默认值,单例

    - prototype:多例

    - request:创建对象把对象放到request域里面

    - session:创建对象把对象放到session域里面

    - globalSession:创建对象把对象放到globalSession里面

     属性注入介绍

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

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

    (1)使用set方法注入

    (2)使用有参数构造注入

    (3)使用接口注入

    3 在spring框架里面,支持前两种方式

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

    (2)有参数构造注入

    使用有参数构造注入属性

    xml配置的写法:

    结果如下:

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

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

    1 创建service类和dao类

    (1)在service得到dao对象

    2 具体实现过程

    (1)在service里面把dao作为类型属性

    (2)生成dao类型属性的set方法

    (3)配置文件中注入关系

    P名称空间注入

     

    注入复杂类型属性

    1 数组

    2 list集合

    3 map集合

    4 properties类型

      

      <!-- 注入复杂类型属性值 -->
    
        <bean id="person" class="cn.itcast.property.Person">
    
           <!-- 数组 -->
    
           <property name="arrs">
    
               <list>
    
                  <value>小王</value>
    
                  <value>小马</value>
    
                  <value>小宋</value>
    
               </list>
    
           </property>
    
          
    
           <!-- list -->
    
           <property name="list">
    
               <list>
    
                  <value>小奥</value>
    
                  <value>小金</value>
    
                  <value>小普</value>
    
               </list>          
    
           </property>
    
          
    
           <!-- map -->
    
           <property name="map">
    
               <map>
    
                  <entry key="aa" value="lucy"></entry>
    
                  <entry key="bb" value="mary"></entry>
    
                  <entry key="cc" value="tom"></entry>
    
               </map>
    
           </property>
    
          
    
           <!-- properties -->
    
           <property name="properties">
    
               <props>
    
                  <prop key="driverclass">com.mysql.jdbc.Driver</prop>
    
                  <prop key="username">root</prop>
    
               </props>
    
           </property>
    
        </bean>
    

      

    后续更多请见Spring框架学习笔记(二)

  • 相关阅读:
    hdu 6053 TrickGCD(筛法+容斥)
    hdu 6040 Hints of sd0061(stl: nth_element(arr,arr+k,arr+n))
    hdu 6055 Regular polygon
    POJ
    WPF页面后台代码InitializeComponent()报错
    C#更新packages
    git--撤销添加&放弃修改&代码冲突
    git--新建分支&提交代码
    foreach 改变集合时不能使用
    VirtualBox 共享文件夹设置
  • 原文地址:https://www.cnblogs.com/mmgf/p/8744302.html
Copyright © 2020-2023  润新知