第一部分:Spring概述:
1:Spring初步理解:
Spring 分层:controller (控制层) service (业务层:主要的业务逻辑在此进行完成) dao(这一层我理解为:操作数据库将前台传入的参数转换为可执行的sql:持久化影响数据库中对应的表;)
内核:ioc 和aop
支持第三方类库(自定义的类库也可以)和其他框架(Struts、Hibernate):
Spring Framework 其实是spring框架;
2Spring的优点:
2.1⽅便解耦,简化开发
(通过IOC.AOP来完成)真实的情况:使用大量的面向注解开发。封装大量的代码。
解耦是通过。ioc来解决的。简化开发。我的理解是:开发注解太方便了。特别是在创建
service层。和dao层对象的时候。(可能开发的最终方向:你会进行大量的注解,配置代码量会下降
让开发人员。更具体的业务逻辑处理)
2.2AOP编程的⽀持 面向切面:开发过程中为了方便后期的维护。日常对日志的排查。
将业务逻辑。和一些特殊需求进行分开编写代码。然后可以放到一起运行。
2.3⽅便程序的测试’ 相对于老版本的项目。启动时。配置对应的tomcat依赖就可以进行启动
2.4⽅便集成各种优秀框架。
需要开发者将对应框架的依赖引入即可;是不是很方便呀。
Spring框架版本:
jdk8 for SpringFramework 5.x
jdk6 for SpringFramework 4.x
jdk5 for SpringFramework 3.x
第二部分: 核心思想:
1 IoC
控制反转:如果你是用的spring框架。你可以将创建对象(例如service层对象,dao层对象交给
Spring层)
这样可以对service 层。 dao层。 进行解耦。
2 AOP
面向切面编程:
在不改变原有业务逻辑情况下,增强横切逻辑代码(增强在java中代表的意思:在业务逻辑代码的开始。或者是结束的时候新增日志。开启事务等等一些操作),根本上解耦合,避免横切逻辑代码重复
(像日志。或者事务很多地方都会使用。而且使用方式一模一样)
3为什么叫做⾯向切⾯编程
「切」:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以⾯向横切逻辑
「⾯」:横切逻辑代码往往要影响的是很多个⽅法,每⼀个⽅法都如同⼀个点,多个点构成⾯,有⼀个
⾯的概念在⾥⾯