zoukankan      html  css  js  c++  java
  • Spring学习的一点感想

    
    

    最近在学习Java体系的一些框架,先把SSM先学一遍吧,不得不说经典的Java体系带给我的冲击还是比较大的,这里不记录框架的一些实现细节,那些都记录在笔记里面了,这里记录学习 Spring 体系的一些核心思想和思维吧。

     

    SpringFramework

    SpringFramework主要是两个最重要的编程思想:

    • IoC 控制反转

    • AOP 面向切面编程

    先说这些编程思想的出现要解决的问题:解耦

    将我们庞大的工程分层,让每一层专注于解决自己的问题,这也是软件工程思想架构的思维,非常非常重要。

    IoC

    这是最重要的思想,完全颠覆了Java开发的思想。

    简单来说,就是使用一个容器来完成对所有bean对象的管理。

    这里使用了工厂模式的设计思维。

    将我们需要使用到的bean对象都交给Spring框架来管理,我们对于Bean对象的获取,注入等操作都借助框架,通过 Dependency Injection 依赖注入来注入到每个需要的对象中。

    我们通过 XML 或者 注解的方式能够很简单的获取我们所需要的对象,Spring框架会为我们注入到每个需要的对象中。

    理解IoC最好的方式还是我们可以自己简单的实现一个 IoC 的框架,从而能够理解 IoC。

     

    AOP

    这是一种编程思维,而不是仅仅针对Java或Spring的框架。

    AOP的出现让每一层能够专注于实现自己的功能,而那些通用的、贯穿整个开发的内容:例如日志、事务安全等可以使用专门的一层来实现,而不必将整个业务层的代码变得冗余繁杂。

    在 Java 体系中,我们主要是通过动态代理来进行 AOP 的实现。

    为什么动态代理这么强大?这是因为我们通过反射,在运行中创建对象。

    这是因为 Java中,动态代理字节码随用随创建,随用随加载,从而在不修改源码的基础上对方法增强。

    主要有两种方式:

    • 通过原生的 Proxy 类来生成代理对象从而完成通用的任务

    • 通过 cglib 的 Enhancer 来实现代理对象从而完成动态代理

    理解 AOP 最好的方式还是我们可以自己简单的实现一个 AOP 的框架,从而能够理解 AOP。

     

  • 相关阅读:
    Element+Vue.js 选择器常用属性
    常用xml头文件
    【链接】调查显示:超20%美国大学生曾花学生贷款投
    Quartz遇到的问题
    List去重
    SpringDataJPA
    IDEA:Error during artifact deployment. See server log for details.详解
    Quartz定时任务
    多线程条件通行工具——CountDownLatch
    多线程同步工具——Lock
  • 原文地址:https://www.cnblogs.com/veeupup/p/12248882.html
Copyright © 2011-2022 走看看