做程序员已经有几年时光了,在期间参与过Android软件开发。Java软件开发,但就Java软件开发来说,由于项目模块众多而且复杂,从来没有自己搭建过项目框架,都是参与模块开发。每个人都一样,谁不向往成为项目中核心的一员或者成为系统架构师,项目经理等,我和众多的程序员一样,每天早早的上班,挤过公交,挤过地铁。在上海这座美丽的城市拼搏,最近终于成为了项目的主干,核心人物,我想记录下一路走来的点滴。
曾经面试过上百家的企业,当问到你独立搭建过架构吗?我只能说没有,因此拼搏几年也没拿过高薪。你是否也这样呢?那就和我一起向架构师、项目经理、团队核心努力吧,一起去追逐我们的梦想和高薪。
思路:
1、分析需求,你要做什么,目标产品具有什么特点出发(决定了你需要什么样的jar包)
2、确定搭建的技术架构,即就是采用什么样的技术,使用什么样的层次结构使得项目更容易扩展,易维护,以及多项目的架构重用(以不变应万变)
3、确定开发工具和搭建项目的工具(统一代码管理和jar管理,团队环境一致不容易出现莫名的错误)
4、实施搭建
5、测试
技术架构:spring4.1.9+springMVC+Mybatis3.2.6+jsp+javascript
开发工具:1、idea2017(统一的代码开发工具)
2、maven3.5(用于jar管理和项目构建测试和打包)
3、svn(代码统一服务器管理)
4、Oracle数据库+pl/sql客户端(连接数据库建表)
5、PowerDesigner15.3(用于数据库设计和表结构管理)
开发环境:jdk1.8(支持Java),UTF-8
项目结构:
项目架构项目创建和pom.xml配置
项目目录结构:
项目架构师为了重复使用架构模块防止每次找必须jar包,该项目我们只需要配置pom.xml配置就好。具体如下:
4.0.0
com.banwxf.schoolspring
school_spring
jar
1.0-SNAPSHOT
school_spring Maven Webapp
http://maven.apache.org
4.1.9.RELEASE
3.2.6
1.2.0
UTF-8
org.springframework
spring-core
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-test
${spring.version}
jar
test
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis_spring.version}
mysql
mysql-connector-java
5.1.34
junit
junit
4.11
test
c3p0
c3p0
0.9.1.2
commons-dbcp
commons-dbcp
1.2.2
com.oracle
ojdbc7
11.2.0
commons-fileupload
commons-fileupload
1.3.1
commons-lang
commons-lang
2.6
commons-io
commons-io
2.0.1
org.slf4j
slf4j-api
1.7.10
org.slf4j
slf4j-log4j12
1.7.10
log4j
log4j
1.2.17
school_spring
org.apache.maven.plugins
maven-compiler-plugin
1.8
<dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-coreartifactId> <version>${spring.version}version> dependency>该标签配置了spring的jar包的版本和坐标。${spring.version}引用的是 < properties >标签中对应的版本,名字自定义,按住Ctrl能够链接到
<properties>中,鼠标移动上去会显示对应版本,否则配置< properties >
<spring.version>4.1.9.RELEASEspring.version> <mybatis.version>3.2.6mybatis.version> <mybatis_spring.version>1.2.0mybatis_spring.version> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> properties>该标签配置了spring,mybatis等Jar的版本号,内部标签自定义,同理,所有用到的jar版本都可以配置在 properties中
<dependency> <groupId>org.mybatisgroupId> <artifactId>mybatisartifactId> <version>${mybatis.version}version> dependency> <dependency> <groupId>org.mybatisgroupId> <artifactId>mybatis-springartifactId> <version>${mybatis_spring.version}version> dependency> 这是mybatis的包,在该架构中必须有该包 <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>5.1.34version> dependency>这是MySQL链接包
<dependency> <groupId>c3p0groupId> <artifactId>c3p0artifactId> <version>0.9.1.2version> dependency>这是c3po数据库连接池,能控制数据库最大连接数等,需要在spring中进行配置,具体配置看后面
<dependency> <groupId>com.oraclegroupId> <artifactId>ojdbc7artifactId> <version>11.2.0version> dependency>这是oracle的驱动包用于连接oracle数据库,配合c3p0使用,要连接oracle数据库必须有
<dependency> <groupId>commons-fileuploadgroupId> <artifactId>commons-fileuploadartifactId> <version>1.3.1version> dependency> <dependency> <groupId>commons-langgroupId> <artifactId>commons-langartifactId> <version>2.6version> dependency> <dependency> <groupId>commons-iogroupId> <artifactId>commons-ioartifactId> <version>2.0.1version> dependency>这三个是,spring上传下载文件必须的包,如果不需要上传下载可不需要次jar包,该包可不需要
<dependency> <groupId>org.slf4jgroupId> <artifactId>slf4j-apiartifactId> <version>1.7.10version> dependency> <dependency> <groupId>org.slf4jgroupId> <artifactId>slf4j-log4j12artifactId> <version>1.7.10version> dependency> <dependency> <groupId>log4jgroupId> <artifactId>log4jartifactId> <version>1.2.17version> dependency>该包是日志输出相关jar,需要专门配置,并非必须,只是辅助开发和系统日志处理。
其他相关jar包说明和引入
<dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-coreartifactId> <version>2.7.4version> dependency> <dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-annotationsartifactId> <version>2.7.4version> dependency> <dependency> <groupId>com.fasterxml.jackson.coregroupId> <artifactId>jackson-databindartifactId> <version>2.7.4version> dependency>这三个是用于json输出相关jar包,在spring4.1.9及以上必须使用,需要在spring的配置文件中配置
<dependency> <groupId>javax.servletgroupId> <artifactId>servlet-apiartifactId> <version>2.5version> <scope>providedscope> dependency>这个是servlet相关的jar包
<dependency> <groupId>org.apache.poigroupId> <artifactId>poiartifactId> <version>3.9version> dependency> <dependency> <groupId>org.apache.poigroupId> <artifactId>poi-ooxmlartifactId> <version>3.9version> dependency> <dependency> <groupId>org.apache.xmlbeansgroupId> <artifactId>xmlbeansartifactId> <version>2.4.0version> dependency>这是用于导入或导出成office文件相关的
<dependency> <groupId>net.sourceforgegroupId> <artifactId>pinyin4jartifactId> <version>2.5.0version> dependency>这是汉子拼音相关的,能够获取汉子拼音等功能
<dependency> <groupId>javax.servletgroupId> <artifactId>servlet-apiartifactId> <version>2.5version> <scope>providedscope> dependency> <dependency> <groupId>org.apache.geronimo.specsgroupId> <artifactId>geronimo-servlet_3.0_specartifactId> <version>1.0version> <scope>providedscope> dependency>这是spring当中使用httpservlet相关的,以及加载spring必须的,不能缺少,缺少web.xml的过滤器和分发配置就会报错,如下
<dependency> <groupId>com.banwxf.utilsgroupId> <artifactId>school_utilsartifactId> <version>1.0-SNAPSHOTversion> dependency>这是对本地工具项目的依赖,包括架构也要这样依赖。
这样所有的jar配置就完成了,后续就是加载spring和整合springmvc,mybatis使其成为一个整体。
二、整合springMVC+spring+mybatis+数据库需要编写如下文件:
先看jdbc配置:jdbc.properties,名字随便定义,在spring配置文件中能加载到即可
#jdbc.driverClassName=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/jkdb?characterEncoding=utf-8
#jdbc.username=root
#jdbc.password=root
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=xysq
jdbc.password=xysq
c3p0.pool.maxPoolSize=20
c3p0.pool.minPoolSize=5
c3p0.pool.initialPoolSize=3
c3p0.pool.acquireIncrement=2
里面配置了c3p0和数据库驱动,数据库用户名和密码,连接地址,最大连接池等。
先看spring配置文件:文件名可以随便起
1、加载jdbc文件,整合c3p0,注意spring中引用变量按住Ctrl能链接到,否则说明文件没找到,路径错误。
2、获取mybatis的对象
3、事务控制
4、service和dao的扫描路径
注意:其中文件头是必须的,而且后面的版本要和所引用jar一致,可以去jar底下找配置文件拷贝一个,也可以拷贝低版本的改后面的版本号
再看mybatis配置文件:名字自定义
该文件中不需要写任何东西,因为全部交给spring了
springmvc的配置:文件名随便定义
5242880
这些类在上述jar包中,文件在文件上传下载相关jar包中。
最后一步,加载spring框架。我们需要在web.xml中配置:
Archetype Created Web Application
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
detectAllHandlerExceptionResolvers
false
springmvc
/*
SpringEncoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
SpringEncoding
/*
<context-param> <param-name>contextConfigLocationparam-name> <param-value>classpath:applicationContext.xmlparam-value> context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> listener>加载spring和监听,applicationContext.xml是你的spring配置文件,按Ctrl必须连接到,名字不能变。
<servlet> <servlet-name>springmvcservlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class> <init-param> <param-name>contextConfigLocationparam-name> <param-value>classpath:springmvc.xmlparam-value> init-param> <init-param> <param-name>detectAllHandlerExceptionResolversparam-name> <param-value>falseparam-value> init-param> servlet>
<servlet-mapping> <servlet-name>springmvcservlet-name> <url-pattern>/*url-pattern> servlet-mapping>springmvc的加载配置,springmvc.xml 是你的springmvc的配置文件,同理可以链接,org.springframework.web.servlet.DispatcherServlet 该类依赖servlet-api这个包需要引入,下面的springmvc的映射
<filter> <filter-name>SpringEncodingfilter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class> <init-param> <param-name>encodingparam-name> <param-value>utf-8param-value> init-param> filter> <filter-mapping> <filter-name>SpringEncodingfilter-name> <url-pattern>/*url-pattern> filter-mapping>同理,这是spring强制utf-8的过滤器。
这样整个springmvc+spring4.1.9+mybatis3.2.6就搭建成功了,启动tomcat进行测试或者采用Junit测试即可。