开发网站项目的时候后端使用的是SpringMVC框架开发
开发环境:
eclipse
jdk1.8
Spring 4.0
开发体会:
- 相比于之前的传统servlet开发方法,省略了大量代码,并且减少了大量的servlet重复编写。
- 封装了jdbc处理方法,封装了大量的内部方法,不再需要每次都去进行数据库连接、数据库打开、数据查询、最后关闭的行为,传统方法对数据库的负担很大,因此封装的访问不仅缓解了这一点还节省了大量的重复性代码。
- spring配置文件解耦的方式值得学习,不过对于这种方式,首先的预处理以及初始化容器是需要较长时间的。
- spring中的IOC控制反转体会:之前传统的访问对象方法的方式是两种:1.新建一个实例化对象并调用方法 2.静态方法(该方法在静态存储区内),可直接调用,有一点类似于单例。 而在spring中,对象是由容器创建的(注解或者直接配置注入),当需要实例化对象的时候,有spring主动向类中传递注入,而不是类中直接主动进行创建。这是IOC的体会。
- AOP的学习及体会(本次项目中没有使用到,但是写了一个小demo),意味面向切面编程,想象一个进程(线程)正在执行,但是可以spring的AOP(类似于一把刀,可以直接插入中间进行执行,说到这里突然也觉得有点类似于C语言中不建议使用的go,不过spring中的都是很棒的设计,不会打乱代码逻辑)。上面只是做一个比喻,意思类似。还是自己写一个小demo理解比较好。再用AOP中的(消息)举个例子就是:执行某个方法前,代码先执行另外一个事务通知某些事情(日志很常见的方法)。
- 无论是IOC 还是 AOP ,两种配置中都有注解进行数据值的配置,注解可见前边的自定义注解,主要利用的是Java的反射机制,通过class中的field method等方式得到相关Java具体信息,并获取值,而xml配置则是将值与规则写在了xml中。
Spring 关键技术原理源码分析
初始化流程:
IOC:以xml配置文件为例,首先是框架加载文件资源,通过文件资源中定义的标签,初始化不同的实例,对于bean标签,继续读取bean标签中其他变量以及变量的值,实例化不同的bean出来。
一篇博客学习记录:Spring:源码解读Spring IOC原理
-- 2018.8.26
IOC原理:
AOP原理: