搭建开发环境

从这里开始,后面学习的内容的代码会上传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>




     开发环境准备完毕之后,就可以考虑实现具体的细节了。既然是一个框架,那么首先考虑的就是配置了,需要让配置尽可能的少,这样开发者学习的成本才会更低。