首页 > 其他分享 >Spring 为解决应用开发的复杂性而生

Spring 为解决应用开发的复杂性而生

时间:2023-03-02 21:34:51浏览次数:36  
标签:事务 框架 Spring 复杂性 module 切面 AOP 而生

课程简介和目标

是一个开源框架,它由Rod Johnson创建 ,.它是一个容器框架,用来装javabean,这种中间层框架可以起一个连接作用,比如说把Struts和hibernate结合在一起运用,就是早期的SSH,如果把SpringMVC和MyBatis结合到一起,就是目前非常流行的SSM。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,我们目前所用的几乎所有的框架都可以在spring上进行整合.从简单性,可测性和松耦合性角度而言,绝大部分JAVA应用都可以从Spring受益.

 

Spring优势:

1 方便解耦,简化开发 Spring通过容器,将对象的创建从代码中剥离出来,交给Spring控制,避免直接编码造成模块之间的耦合度高,用户也不必自己编码处理对象的单例和多例控制,主要关注接口功能即可,不用关注具体使用哪个实现类和实现细节问题

2 AOP切面编程 AOP切面编程是程序设计的一种概念,Spring对该概念实现的比较好,通过切面编程我们可以在不修改原有代码的情况下实现功能的增加,通常用于 事务控制,日志记录,性能检测,权限控制等等

3 声明式事务 事务的控制可以托管给Spring,我们通过注解或者配置文件声明事务的处理方式即可,不用我们自己去编码处理

4 整合JUNIT,方便测试 spring整合JUNIT单元测试,对于项目的功能都可以进行轻松快速的测试,便于我们调试程序

5方便整合各种优秀的框架

6 丰富的功能封装 spring对JAVAEE(JDBC ,JAVAMail,)都进行了一系列的封装,简化我们对于API的使用,提高程序的开发效率

7 规范的源码学习样本 spring的源码设计巧妙,结构清晰,大量使用了设计模式,是java代码规范编写的典范,也是高级程序员面试中经常会问到的源码

Spring Framework的体系结构

Spring家族

 

学习目标

1 深刻理解Spring容器概念

2 深刻理解IOC和DI,并能属性相关配置和注解

3 理解代理模式,属性两种动态代理(JDKProxy和CGLIB)实现原理

4 深刻理解AOP切面编程,能够说明AOP的含义以及底层实现原理

5 熟悉AOP的实现方式,XML+注解

6 熟悉Spring JDBCTemplate对象对于数据库的操作

7 能够独立通过AOP方式配置对于事务的控制

8 能够在spring中使用测试和日志框架

 

 

课程大纲

  • 第一章 Spring容器,IOC和 DI
    • Spring概念介绍
    • IOC概念引入
    • IOC原理分析
    • XML方式实现IOC和DI
    • Bean的生命周期
    • Bean的自动装配
    • 使用外部属性配置文件
    • 注解方式管理Bean

容器实现IOC

  • 第二章 Spring面向切面编程
    • JDKProxy动态代理
    • 三方CGLIB动态代理
    • AOP概念,功能和实现原理
    • AOP注解方式实现
    • 了解AOPXML方式实现

动态代理

 

AOP切面编程

 

  • 第三章 Spring事务控制,日志和测试
    • JDBCTemplate的使用和实现CURD
    • 事务回顾和事务环境搭建
    • 注解方式实现事务控制
    • XML方式实现事务控制
    • 通过配置代替XML实现事务控制
    • Spring5的日志控制
    • Spring5对Junit5的支持

事务的传播行为

 

spring框架有什么优势

轻量:Spring 是轻量的,基本的版本大约2MB。

控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

容器:Spring 包含并管理应用中对象的生命周期和配置。

MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。

异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

 

 

Spring有哪些模块

  • Core module
  • Bean module
  • Context module
  • Expression Language module
  • JDBC module
  • ORM module
  • OXM module
  • Java Messaging Service(JMS) module
  • Transaction module
  • Web module
  • Web-Servlet module
  • Web-Struts module
  • Web-Portlet module

标签:事务,框架,Spring,复杂性,module,切面,AOP,而生
From: https://www.cnblogs.com/89564f/p/17173604.html

相关文章

  • 3_Spring_IOC原理分析_重要
    ​ IOC底层原理 1XML解析技术读取配置文件 <beanid="empDao"class="com.msb.dao.impl.EmpDaoImpl"></bean> 将上面的信息读取进入程序 对象的ID,一个......
  • springMVC全注解开发
    消除springmvc.xml创建配置类@Configuration@ComponentScan({"com.java.service","com.java.web.controller"})@EnableWebMvc//<mvc:annotation-driven/><mvc:defaul......
  • 奔赴山海 向阳而生|海泰方圆2022财年年会暨二十周年庆典盛大启动
    奔赴山海向阳而生·岁序更替,华章日新。从2003到2023,海泰走过二十年风雨岁月,在时代潮流中砥砺奋进,在密码产业中循梦而行,走出了极具特色的海泰发展之路。2023年2月28日-3月1......
  • SpringCloud文件夹上传解决方案
    ​ 前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对Http协议较模糊,故这次采用渐进的方式来学习文件上传的......
  • SpringBoot内部方法之间跳转
    从controller的一个方法跳转到另一个方法中可以通过重定向实现,重定向具体语法:redirect:要访问的网址具体请看下面示例:@Controller@RequestMapping("/user")publicclass......
  • SpringBoot整合MapStruct
    第一步:添加依赖<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>1.5.3.Final</version></dependency>第二步......
  • SpringBoot2.6 集成Druid 启动项目 运行SQL文件 自动生成数据库表及数据
    SpringBoot项目启动运行SQL文件自动生成数据库表及数据。第一步:创建SpringBoot项目,添加依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connect......
  • SSM框架-Spring学习日记3
    依赖注入(DI)依赖注入(DependencyInjection,DI)。依赖:指Bean对象的创建依赖于容器.Bean对象的依赖资源。注入:指Bean对象所依赖的资源,由容器来设置和装配。Se......
  • Springboot Condition 实用讲解,只看一遍包学会
    前言 该篇文章,还是一贯的风格,源码+示例+自言自语的分析,目的只有一个:就是想让大家都会玩 Condition、Conditional。   正文先看看Condition是被放在包spr......
  • Spring Java配置
    从Spring4开始可以通过Java配置方式取代XML配置.这也是SpringBoot配置的方式.java配置方式是通过@Configuration和@Bean这两个注解实现.1.1@Configuration和@Bean ......