发表于: 2017-04-08 17:19:24
2 1631
今天完成的事:
1)关于Maven的学习:
1,什么是Maven
Maven是一个项目管理工具,POM(Project Object Model)项目对象模型,通过一小段信息来管理项目的构建,报告和文档
2,Maven能解决什么问题
个人理解主要是通过一个配置文件(setting.xml)来管理整个项目的构建环境以及目录结构等项目的基本运行环境和框架。
3,如何使用Maven
(1)将Maven集成到Eclipse,在配置文件中设置仓库为自定义仓库,当一个项目运行需要一个jar包时会先去本地仓库中寻找,如果没有找到回去全球中央仓库寻找,但是由于其服务器部署在国外,速度较慢,可以配置镜像仓库:
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
这里采用的是阿里云的,相当不错,其中<mirrorOf>值为central表示为中央仓库,也就是原来寻找中央仓库时会被转接到此镜像
(2)创建一个Maven项目,并且编写Dao,目录结构如下:
(3)使用Maven的相关操作
a,使用build-compile(编译)操作:发现项目文件中生成了.class文件。
b,使用clean操作:发现上一次build生成的文件被删除了。
c,使用install操作报错:
分析发现:当程序执行时,在setting中寻找junit的坐标,但是我的junit的配置是创建Maven项目时自动生成的版本是3.8.1,然后去镜像仓库中寻找,但是并没有这个版本所以报错,在把Junit的配置参数version换成4.0后执行正常,且在项目文件的target文件夹下出现项目jar包,并且在自定义仓库中也发布了此项目。
d,使用test操作:单元测试方法被执行。
e,使用build-package操作:发现在项目路径中target文件夹下生成的项目jar包,但是本地仓库中却没有,这也是package和install的区别,install会在本地仓库生成jar包供其它项目使用
f,使用generate-source操作会根据pom.xml生成源代码包
2)Spring的复习
1,Spring框架主要是协同控制其他框架一起工作,可以这样理解,hibernate,struts2等框架看作一个轮子,Spring看成链接其他轮子的车轴
2,Spring的核心(Spring内容较多,此处只重点写了自己认为的精华)
a,IOC(控制反转)将原来程序中自己主动的new对象通过bean.xml的配置转换为被动的接受对象:
其中id表示此bean的唯一标识,class指定生成哪一个类的对象,另外还有很多其他对象的配置比如对象中含有其他类的对象作为属性的,Map类型的对象等等,此处不再赘述,基本上只是语法格式问题,注意一点当整合Struts2时如果对象由Spring生成需要指定Scope="prototype"作用是执行多实例创建,因为Spring默认是单例的。
基本流程:当程序用到一个对象时,会根据对象的变量名去bean.xml中寻找和变量名相同的id,然后根据配置创建对象注入到变量。
b,AOP(代理模式,面向切面)一个应用程序可以分为公共模块程序和核心业务模块,其中公共程序是很多核心程序都要用到的,比如安全管理,事务管理等,如果每次都在核心业务程序中写公共程序,那么会造成代码臃肿和混乱,采用AOP面向切面编程(切面就是指要执行的公共程序)可以让程序员专注于业务代码。
简单来说:就是有很多程序执行之前或者之后都需要运行某一个方法,Spring就是通过配置文件来指定这个过程中的几个对象:在哪里执行,执行哪个方法,在什么时候执行从而来简化代码。相应的目录结构和配置文件如下:
明天计划的事:
完成任务1(如果我有钱买服务器的话)
遇到的问题:
在编写AOP示例代码时,我明明已经用Maven依赖了相关Sping的jar包,可是当写到如下代码时:
添加未实现方法后,还是会报编译错误(The hierarchy of the type ClassName is inconsistent)后来发现是因为Spring的aop实现依赖于另一个jar包aopalliance-1.0.jar将此jar包引入后,问题解决。
收获:
Maven部分使用,Spring相关知识
评论