搭建开发环境
从这里开始,后面学习的内容的代码会上传github。进行git开发,需要有一个github的账号,然后根据用户的系统下载git的客户端安装好,然后进行IDEA配置git。
一 创建框架项目
创建一个smart-framework的maven项目,它是一个普通的maven项目,创建过程可以参考之前的创建mavne项目的流程。在pom.xml文件中需要添加mavne的三坐标
<groupId>org.jack.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>1.0.0</version>
然后需要为这个项目添加相关的依赖,由于smart是一个java web的框架,那么一定会依赖servlet,jsp,jstl等。所以添加下面的依赖:
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!--JSTL依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
slf4j和log4j两个依赖。(maven依赖是有传递性的)
<!--SLF4J依赖-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
由于使用的是mysql数据库,java需要添加一个mysql的驱动包,依赖如下:
<!--mysql数据库驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
<scope>runtime</scope>
</dependency>
由于Controller的Action方法返回值中是可以返回JSON数据的,因此需要选择一款json的序列化工具。目前在功能,性能,稳定性各方面表现较好的json序列化工具就是Jackson了,我们就使用它,依赖如下:
<!--json序列化工具Jackson依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
还有一些常用的工具类,我们可以使用Apache Commons的一下依赖:
<!--Apache Commons Lang工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!--Apache Commons Collections工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
Apache Commons的项目之一。添加如下依赖:
<!--JDBC类库DbUtil工具包依赖-->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
Apache Commons的项目之一,添加如下依赖:
<!--连接池框架DBCP工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1</version>
</dependency>
到这里Maven配置就结束了,完整的配置见下面:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jack.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>1.0.0</version>
<!--添加依赖-->
<dependencies>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!--JSTL依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<!--SLF4J依赖-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<!--mysql数据库驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
<scope>runtime</scope>
</dependency>
<!--json序列化工具Jackson依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
<!--Apache Commons Lang工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!--Apache Commons Collections工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
<!--JDBC类库DbUtil工具包依赖-->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<!--连接池框架DBCP工具包依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</project>
这是自行开发一个MVC框架,所以没使用其他的MVC的框架,尽量减少依赖。
注意:smart-framework是一个框架项目,需要提供jar包给其他的项目使用,所以在其他java web项目中需要引用该项目,smart-framework需要打包成jar包,提供给其他项目使用。打包方法如下:
1,在IDEA的左上角找到view ->Tool Windows ->Maven Projects
2,经过第一步后,在IDEA的右边会出现Maven Projects的结构,选择Lifecycle-》install点击就可以进行打包
3,打包后的项目默认在target目录下
二,创建示例项目
除了smart-frameworkd项目之外,还需要创建一个使用该框架的项目,命名为chapter3,很多代码来源之前的项目。chapter3项目开始创建的时候是一个maven项目,需要转换为java web项目,至于创建maven项目和转换为java web项目可以参考之前的方法。
chapter3项目是一个java web项目,它需要依赖smart-frameworkd项目,chapter3详细的pom.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jack.smart</groupId>
<artifactId>chapter3</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<!--依赖管理-->
<dependencies>
<dependency>
<groupId>org.jack.smart</groupId>
<artifactId>smart-framework</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<!--插件管理-->
<build>
<plugins>
<!--使用maven的tomcat插件启动项目-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/${project.artifactId}</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
开发环境准备完毕之后,就可以考虑实现具体的细节了。既然是一个框架,那么首先考虑的就是配置了,需要让配置尽可能的少,这样开发者学习的成本才会更低。