美文网首页
实训二周maven+mybatis+spring

实训二周maven+mybatis+spring

作者: 刘佳超_强化班 | 来源:发表于2020-07-18 15:25 被阅读0次

           实训第二周结束了,回顾下实训学习的东西,第一周学的是html+css+js很基础了东西,没有特别值得说的地方,第二周开始二ssm的学习,这周学的东西是真的多,收获颇丰。

            第一天学习了maven,maven的主要作用不在于帮组构建代码,而是在于帮助我们处理代码构建以外的事情,例如项目结构/项目目录的建立,jar包的管理以及许多我还不知道的功能,做足了构建代码的条件,实乃一大辅助利器。对于maven这种类型的东西,类似的还有vue-cli他们都可以帮助使用者建立项目目录,根据学习经验,碰到这种东西第一件事就是学习它们的目录结构,以此为着手点去学习更深层次的东西会更合理点。

          第二天、第三天学习了mybatis,说是持久层的东西,持久层是什么东西我都不知道,于是下去查了下,幸运的是讲师后来也说明了持久层的意义,补充了我对该概念的理解,所谓持久层,是指处理需要长期存储在磁盘等存储物质上信息的一层程序,数据库存储在磁盘上,包含着需要长期保存的,断电不会消失的信息,我们想要处理就需要JDBC程序来与数据库产生交互,mybatis就代替JDBC帮我们去和数据库交互,通过xml形式、注解形式或者xml+注解形式,根据讲解常用形式是xml+注解的形式,我们只负责将需要数据库执行的语句交给mybatis去处理然后接受结果皆可,不在需要去处理其他东西,像是多线程、数据库连接池等。确实方便。

          第四天学习了spring,spring的知识体系特别庞大,一两天只能学习常用的基础知识,学不到更深层次的知识,但即使这样对我来说也是很好的,像我这种没学习过spring的,这次实训能成为一个很好的入手ssm的机会。spring直译是春天的意思,具体翻译我不懂,有时间可以去了解下这个,我学到的spring的功能是帮助我们去实例化对象,至于为什需要交给spring去帮我们实例化对象,一个解释是我们自己去实例化对象那么,每当我们new一个对象时,那么这个对象就参杂到了它所实例化的地方,专业点叫产生耦合了。可以想到若我们修改了对象类的名字那么从它实例化的出的对象都要修改,对于耦合的解释我自己理解是:牵一发而动全身。模块之间不会互相干预,但耦合会使原先不需要建立关系的两段程序产生了关联性,导致改一个就要牵动另一个。spring可以帮我们解耦,这里面有两个名词控制反转(IOC)和依赖注入,其实还有一个(面向切面编程)AOP但没学过,解释不来哦。

          控制反转(IOC),太过专业的解释我说不出来 ,自己理解的是控制反转是将实例化对象的权利交给了spring,原本我们想要实例化对象需要自己去new出来,就像吃饭要自己做一样,控制反转后,实例化权利交给类spring,就像吃饭去饭店一样,不是自己做的了,用饭店做好的。

          依赖注入,假如有个类名字叫:番茄鸡蛋盖饭(程序中类名一定要用英文),我要实例化它那么就需要通过new 来实例化它:new 番茄鸡蛋盖饭();但是呢很多时候我们是有特殊需求的,像是new 番茄鸡蛋盖饭("加糖");我们给这个东西赋值了,不再使用它默认的方式去做这道菜。像这样的spring帮我们实例化对象时也应该能满足我们的特殊需求,这样就需要spring提供一种或多种方式供我们去提出这个要求,依赖注入就是讲的这件事,对象都有自己的成员属性,如果是一个教师类,那么它一定有教师名字这个成员属性,我们就需要靠依赖注入使spring帮我们实例化类时能够创建出一个具体的对象而不是一个name = null的对象。注入方式我学到的有xml和注解两种形式,根据讲师描述,常用的时spring注解的形式进行注入,以为注解标记在累上面因此使用注解后spring实例化出来的对象属性都一样,有需要的话还要自行更改,通过setter之类的更改。

          回到spring这,spring能帮我们解耦,因为我们将创建对象的任务交给了它,我们只需要接受这个对象就行,好像和我们new没什区别,但是我们可以在接受的东西不变情况下去适当改变我们接受的对象,对这一块我解释的比较苍白,还是需要自己学到这里时去感受了。

         至于ssm的springmvc,我还是一知半解,现在不敢轻易去说这个东西,等待下周学完吧,有点期待下周的实训了。

    相关文章

      网友评论

          本文标题:实训二周maven+mybatis+spring

          本文链接:https://www.haomeiwen.com/subject/qezxkktx.html