第一章 Spring之旅

本文详细介绍了Spring框架的作用、组成模块及关键技术策略,包括依赖注入、应用切面、模板使用及Spring容器等内容,帮助开发者理解如何利用Spring框架简化Java应用程序的开发。

一、Spring的作用

用来替代更加重量级的企业级Java技术,尤其是EJB。达到简化java编程开发

 

二、spring的组成模块

Core

IoC container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP.

Testing

Mock objects, TestContext framework, Spring MVC Test, WebTestClient.

Data Access

Transactions, DAO support, JDBC, ORM, Marshalling XML.

Web Servlet

Spring MVC, WebSocket, SockJS, STOMP messaging.

Web Reactive

Spring WebFlux, WebClient, WebSocket.

Integration

Remoting, JMS, JCA, JMX, Email, Tasks, Scheduling, Cache.

Languages

Kotlin, Groovy, Dynamic languages.

https://i-blog.csdnimg.cn/blog_migrate/293092e35f80eab5e035a03fdcccf2f4.png

三、为降低开发的复杂性,Spring采用以下4中关键策略

  • 基于POJO轻量级和最小侵入性编程
  • 通过依赖注入和面向接口实现松耦合
  • 基于切面和惯性进行声明式编程
  • 通过切面和模板减少样式代码

  注:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans。其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

 关于DI  Dependency Injection,依赖注入 和  IOC Inversion of Control,控制反转 项目概念查看此博客

     https://blog.youkuaiyun.com/luoyepiaoxue2014/article/details/72426666

1、依赖注入

实际的应用都是由两个类或者更多的类组成,类之间通过相互协作来完成特定的业务逻辑。通常每个对象负责管理与自己相互协作的对象的引用,但是这将会导致高度耦合和难以测试的代码;

通过依赖注入的方式,对象的依赖关系将由负责协调系统中各个对象的第三方组件在创建对象时设定。对象无需自行创建或管理他们的依赖关系;这就大大的减少了对象之间的耦合,可以注入接口的方式给对象注入不同的实现;

创建组件之间协作的行为称为装配。spring有多种装配bean的形式(xml配置文件,注解等),spring通过应用程序上下文装载bean的定义并把他们组装起来。spring应用程序上下文全权负责 对象的创建和组装。

2、应用切面

依赖注入使相互协作的组件保持松散耦合,而aop编程允许你把遍布应用各处的功能分离出来形成可重用的组件,实际中,经常会用aop来分离一些和业务逻辑无关的功能,如日志、事务管理、安全等;

如果这些与业务逻辑混在一起,将会导致复杂的依赖关系:

而aop可以使这些服务模块化,并以声明的方式将它们应用到它们需要影响的组件中去,使这些组件具有更高的内聚性以及更加关注自身业务完全不需要了解系统服务的复杂性;

3、通过模板消除样板式代码

例如spring的JdbcTemplate

4、spring容器

在基于spring的应用中,容器生存与spring容器中,容器创建它们,装配它们,配置它们,管理它们的整个生命周期,从生存到死亡;

容器是spring框架的核心,spring容器通过依赖注入管理构成应用的组件,它会创建构成应用组件之间的关联;

spring自带几种容器的实现,可以归为两种不同的类型。

Bean工厂:最简单的容器,提供基本的di支持;

应用上下文:基本Bean工厂智商构建,提供面向应用的服务

5、应用程序上下文

ClassPathXmlApplicationContext:从类路径下的xml配置文件中加载上下文定义;

FileSystemXmlApplicationContext:读取文件系统下的xml配置文件并加载上下文定义;

XmlWebApplicationContext:读物web应用下的配置文件并装载上下文定义;

6、bean生命周期

1、spring对bean进行实例化

2、spring将值和bean的引用注入进bean对应的属性中。

3、如果bean实现了BeanNameAsare接口,spring将bean的id传递给setBeanName()接口方法

10、如果bean实现了DisposableBean接口,spring将调用它的destroy()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值