闲来没事,想整理下一些知识。
这篇文章是关于spring的web程序的搭建,有什么不对的地方希望大家批评指正。
<强>首先我们要了解什么是春天,这里可能很多大家也都明白,无非是一个管理对象的一个容器,主要体现在国际奥委会注入和AOP切面编程。强>
关于上面的两点在后面一点会给大家更具体的说明一下是什么。
简单的来说,以前大家编程实例化都是自己在控制,这样真的好吗?
下面是不用春天的写法,我们先假定有一个类是下面这样的:
公共类工 { 公共空间sayHallo () { system . out。println(“喂,我是工人!”); } }
然后又有下面这个类:
公共类经理 { 公共静态void main (String [] args) { 工=新工人(); worker.sayHallo (); } }
很明显,是经理类在调用工人类,值得注意的是别人新实例化了一个工人类,这个实例化过程是编程的人自己的。
但是这种过程真的需要自己来做吗?因为在大家做业务的时候,会经常有这种操作,每次都手动的去做这件事好像有点麻烦。
所以春天就来解决这个问题了,有了春天,根本不需要你来做,春天帮你把这个过程给你做了,这也是我上面为什么说春天是一个容器,
在这里你可以先简单的理解为他这个容器可以容纳各种对象,并对这些对象进行管理。
说到这里,可能大家还感觉不到这个对我们编程会有多大的好处,即使下面举了例子,可能也不一定能感觉得到有什么不同,至少对没接触过春天的同学是这样。
下面我换种方式实现上面对等的功能,第一个工人类不用变:
公共类经理 { 私人工; 公共静态孔隙callWorker () { worker.sayHallo (); } 公共工人getWorker () { 返回工人; } 公共空间setWorker(工){ 这一点。工人=工人; } 公共静态void main (String [] args) { callWorker (); } }
这里可以看见工人并没有实例化,但再主要函数中就可以直接调用了。那这个实例化的过程就是春天来做的。
那春天怎么知道为哪个类提前实例化好某个对象呢?那这个就是在春天配置文件里写好这层关系的。
春季的配置文件叫做applicationContext。xml,这里面会有这样的代码
& lt; bean id=熬怼崩?皒xx.xxx.xxx.Manager”比; & lt;属性名="工人" ref=肮と恕弊4? lt;/property> & lt;/bean> & lt; bean id=肮と恕崩?皒xx.xxx.xxx.Worker祝辞& lt;/bean>
ref的值就是指工人类所对应的id,意味着经理需要的锅的实例化就解决好了,不需要我们手动的去实例化,工人变量就会自动被相对应的类型初始化好。
这个过程我们就称之为spring的IOC,这个是春天的基础,当然AOP也是在这个基础上实现的。
AOP简单的讲就是面向切面的编程,比如每当一个方法执行前都会有一个特定的函数先做其他的某种处理,可以简单的理解成这样。
下面理解了春天的核心原理,我们就可以尝试着去搭建响应的一些框架。
这里我们选择的搭建环境是:
mysql-5.7.17 + hibernate5 + spring5 + springMvc组件+ apache-tomcat-8.5.16 + jdk8的web程序。
这里所有的环境变量设置就大家自己去解决了。
首先我们应该下载好春天所需要的jar包,当然还有hibernate .....等也需要jar包,这里我图方便就把
包含春在内的以及整个工程所需要的jar包都放在了一起,由于我用的版本都比较高,所以包与包之间的冲突问题还是比较多的,
解决的过程还是比较麻烦的,好在我最后把解决好的jar包都放在一起了,这里的jar细分有hibernate5, mysqlJdbcDriver, c3p0相关jar包,
servlet, spring5等。
为了方便,我将瓶子放在了一个文件夹下,然后由eclipse将这个文件夹下的所有jar包设置成用户自定义库,然后在引入项目中,最后部署的时候
也把jar复制到了webContent下的lib中。