Spring底层原理及其主要知识点(一)

什么是Spring

Spring是一个轻量级的java开发框架,是为了解决企业级应用开发的业务逻辑层和其它各层的耦合问题,实现解耦合。
Spring最基本的使命是解决企业级应用开发的复杂性,及简化java开发。
Spring可以做很多功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection)也就是控制反转(ioc)和面向切面编程(AOP)

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

介绍Dao层、Service层和Controller层

这三个层都是很重要的,首先明怀我来介绍一下下他们之间的关系,从左到右依次表示为依赖关系
Controller->service->Dao
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而
Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。
每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

controller:也可以成为action层,业务模块流程。我经常喜欢用控制视图的跳转来简单形容,但是这个是不全面的,因为他除了控制视图的转换之外,还控制了业务的逻辑,但是,这里的控制业务逻辑不是业务逻辑的实现,而仅仅是一个大的模块,你看到之后,知道它实现了这个业务逻辑,但是怎么实现的,不需要关心,仅仅需要调用service层里的一个方法即可,这样使得controller层看起来更加清晰。

service:业务逻辑层。接着controller层中,可以想到,service层是业务逻辑(商务逻辑)的具体实现。它向上层的controller层提供接口,并且使用dao层提供的接口。存在的必要性:有时候,我认为更多的时刻,service层中仅仅是调用dao层中的一个方法,那么它是否有必要存在呢?答案是肯定的。因为,假如将来客户的业务有一定的变动,那么这样一来,你只需要在service层中进行一些变动即可。记住,你写程序不应该仅仅为实现功能考虑,更多的还是应该为将来的维护考虑,因为大部分的时间还是在维护上的。

dao:数据访问对象。他只负责对数据进行访问,而不管其他的什么业务逻辑,其实就是只干活,而不管为什么干。在dao层里面要完成的是数据访问逻辑以及对数据的访问。数据访问,大部分情况下就是对数据进行操作。dao层为上层的service层提供接口。dao层在操作完成后,如果是查询,则返回对象,如果是增删改,则仅仅需要返回一个boolean值表示成功失败即可。

于是我们提出了Spring这样的容器技术,也就是说,当Dao层之前使用的是mybatis数据库技术,现在要使用Herbinate技术的话,我们就不需要在service当中进行修改,还有就是我们每次通过service来访问Dao层数据的时候,都需要新创建一个对象来访问,这样也会大大地增加二者之间的依赖性,于是我们可以通过Spring容器来为我们进行一个创建。

IOC容器

为什么有ioc容器这个东西呢,简单来说,就是因为我们想要减轻每次想要用到service当中的类和方法的时候,不用重新在Test当中进行一个新的创建,只需要在容器当中设置其对应的类,然后每次从中取出就可以了。
举例
首先我们创建一个类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值