• Spring学习记录(一)


    1.Spring简介

    Spring是一个轻量级的java开发框架。框架的主要优势之一就是分层架构,Spring使用基本的JavaBean,不仅限于服务器的开发。从简单性,可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。

    Spring的核心就是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架

    1.1 为什么要使用Spring

    (1) 方便解耦,简化开发:Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理

    (2) AOP编程:Spring提供面向切面编程,可以方便的实现对程序的权限拦截,运行监控等功能

    (3) 声明式事务:只需通过配置就可以完成对事务的管理,无需手动编程

    (4) 方便程序测试:Spring对Junit4支持,可以通过注解方式的测试spring程序

    (5) Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(Struts,Hibernate,MyBatis,Quartz,Dubbo,Zookeeper)的直接支持

    (6) Spring对javaEE开发中非常难用的一些API(JDBC,JavaMail,远程调用等),都提供了封装,大大降低了API应用难度

    2.SpringIOC,DI的实现原理

    IOC:Inverse Of Control反转控制

    将我们创建的对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入,使用spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入。反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序。

    DI:Dependency Injection依赖注入

    实现IOC思想,DI做支持

    注入方式:set方法注入,构造方法注入,字段注入(不推荐)

    注入类型:值类型注入(八大数据基本类型),引用类型注入(将依赖对象注入)

    3.Spring的概念

    3.1 BeanFactory(过时)

    BeanFactory最底层原始的接口,针对原始接口的实现类功能较为单一。它的实现类的容器的特点是每次在获得

    对象时,才会创建对象。

    3.2 ApplicationContext

    ApplicationContext接口每次容器启动是就会创建容器中配置的所有对象,并提供更多的功能

    他有两个典型的实现类:

    (1) 从类路径下家在配置文件:ClassPathXmlApplicationContext

    (2) 从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy")

    在web开发中,使用applicationContext,在资源匮乏的环境可以使用BeanFactory。

    4.Spring的配置详解

    4.1 bean配置

        <!-- 将User对象交给spring容器管理 -->
        <!-- Bean元素:使用该元素描述需要spring容器管理的对象
                name属性:给被管理的对象命令,获取对象时根据该名称获得对象
                class属性:被管理对象的完整类名
                id属性:与name属性一模一样,名称不可重复,不能使用特殊字符
         -->
        <bean id="user" name="user" class="com.javaweb.pojo.User">
    
        </bean>

    scope属性:

    常用取值:

    (1) singleton(默认值):单例对象,被标识为单例的对象在spring容器值会存在一个实例

    (2) prototype:多例原型,被标识为多例的对象每次在获得时才会创建,每次创建都是新的对象

    (3) request:对象与request生命周期一致

    (4) session:web环境下对象与session生命周期一致

    生命周期属性:

    配置一个方法作为生命周期初始化方法,spring会在对象创建之后立即调用——init-method

    配置一个方法作为生命周期的销毁方法,spring容器在关闭并销毁所有容器中的对象之前调用——destory-method

    4.2 spring创建对象的方式

    (1) 空参构造方式

    (2) 静态工厂(了解)

    (3) 实例工厂(了解)

    3.1 BeanFactory(过时)

  • 相关阅读:
    LeetCode: Longest Valid Parentheses 解题报告
    LeetCode: Generate Parentheses 解题报告
    Leetcode: LRU Cache 解题报告
    LeetCode: Maximal Rectangle 解题报告
    LeetCode: Min Stack 解题报告
    LeetCode: Restore IP Addresses 解题报告
    LeetCode: Longest Common Prefix 解题报告
    LeetCode: Regular Expression Matching 解题报告
    Python——rrdtool模块的安装
    python-xlsxwriter模块绘制表格
  • 原文地址:https://www.cnblogs.com/FanJava/p/9676183.html
Copyright © 2020-2023  润新知