zoukankan      html  css  js  c++  java
  • maven工程开始

    clipse中,maven工程,更新pom.xml文件后,会让你更新工程。快捷键是Alt + F5,也可以右键工程,Maven-->update project...,这样有个问题就是默认的JRE System Library,会变成默认的,而不是eclipse里安装的默认的JRE, 修改方法为在pom文件里加上如下代码:

    wKiom1YKGHyAgeftAAFi977b3gE472.jpg

    <build>
      <finalName>blog</finalName>
    <plugins>
       <plugin>  
       <groupId>org.apache.maven.plugins</groupId>  
       <artifactId>maven-compiler-plugin</artifactId>  
       <configuration>  
           <source>1.7</source>  
           <target>1.7</target>  
       </configuration>  
       </plugin>
     </plugins>
    </build>

    然后再更新maven project,就会发现,默认的JRE System Library就是1.7了,虽然显示的是JaveSe-1.7,但是实际上指向的是安装的JDK。

    咱们先从bean开始修改,修改maven中的属性配置,添加根目录属性配置

    wKioL1hsq_PxaetLAAAcR9hP15A352.png-wh_50

    <!-- pom属性配置 -->
    <properties>
    <main.basedir>${basedir}/../</main.basedir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    这个模块里主要放静态常量用。在src下默认的package--org.ssm.frame.bean下创建静态常量类Constant注:这里的basedir是maven的内置属性参考http://503431920.blog.51cto.com/6681280/1888977

    wKiom1hsvxqAITpNAAAlxT7fq-k820.png-wh_50

    这里目前不需要其他的代码了,自己根据需求完善即可。

    下一步就开始修改dao模块了。这里有个额外需要介绍的,就是模块化的项目管理版本,在主pom文件里引入这个jar包以后,这个jar包需要通过maven安装到本地仓库中,做法是直接通过eclipse右键这个bean模块,run as maven install,这里注意是需要jdk而不是jre。

    在子模块里用的时候就不需要版本version信息了,

    首先这个主pom文件里需要加上dependencyManagement标签来添加引入jar包的信息,groupId,artifactid, version。

    wKiom1htCYTBB_NGAAAks8h2TKo359.png-wh_50

    在子模块中使用方法是

    wKioL1htCtfDIyahAAAUfEgsa60654.png-wh_50

    这里发现这个jar包的引用是不需要版本的,因为在主pom中已经说明了这个jar包的信息详情。子模块直接引用即可。

    因为要写的框架是ssm的,那进行到dao层的时候,需要写的就是mybatis了。mybatis都知道是为了连接数据库操作用的,那么在这之前还需要个数据库连接的配置文件config.properties。因为这个配置目前只是为了连接数据库的,那么我暂时就先放在dao层里,目录结构如下

    wKioL1iaiUXBjN9cAAAiqLib3K8165.png

    # -- mysql properties --
    
    mysql.driver=com.mysql.jdbc.Driver
    
    mysql.url=jdbc:mysql://localhost:3306/test_ssm?useUnicode=true&amp;characterEncoding=UTF-8
    
    mysql.username=***
    
    mysql.password=****。

    数据库的配置有了,添加generator的配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
    
        <!-- 引入配置文件,此处我的配置文件和当前generator配置文件在同一个文件夹下,所以直接写文件名即可 -->
        <properties resource="config.properties" />
    
        <!-- 引入MySQL-connector jar包 -->
        <classPathEntry
            location="C:/Rex/maven/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar" />
    
        <!-- 一个数据库一个context -->
        <context id="ssm">
    
            <!-- 注释 -->
            <commentGenerator>
                <!-- 是否取消注释 -->
                <property name="suppressAllComments" value="false" />
                <!-- 是否生成注释代时间戳 -->
                <property name="suppressDate" value="true" />
            </commentGenerator>
    
            <!-- jdbc连接 -->
            <jdbcConnection driverClass="${mysql.ssm.driver}"
                connectionURL="${mysql.ssm.url}" userId="${mysql.ssm.username}"
                password="${mysql.ssm.password}" />
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- 生成实体类地址 -->
            <javaModelGenerator targetPackage="com.ssm.model"
                targetProject="src/main/java">
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.ssm.model, true:com.rmbih.model.[schemaName] -->
                <property name="enableSubPackages" value="false" />
                <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!-- 生成mapxml文件 -->
            <sqlMapGenerator targetPackage="com.ssm.mapper"
                targetProject="src/main/resources">
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.rmbih.mapper, true:com.rmbih.mapper.[schemaName] -->
                <property name="enableSubPackages" value="false" />
            </sqlMapGenerator>
    
            <!-- 生成mapxml对应client,也就是接口dao -->
            <javaClientGenerator targetPackage="com.ssm.dao.mapper"
                targetProject="src/main/java" type="XMLMAPPER">
                <!-- 是否在当前路径下新加一层schema,eg:fase路径com.rmbih.IDao, true:com.rmbih.IDao.[schemaName] -->
                <property name="enableSubPackages" value="false" />
            </javaClientGenerator>
    
            <!-- 配置表信息 -->
            <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample 
                是否生成 example类 -->
            <table schema="ssm" tableName="ssm_user_t">
                <!--domainObjectName="UserEntity" enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false" enableUpdateByExample="false" -->
    
                <!-- 忽略列,不生成bean 字段 -->
                <!-- <ignoreColumn column="FRED" /> -->
                <!-- 指定列的java数据类型 -->
                <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> -->
                <!-- <columnOverride column="???" property="???" /> -->
            </table>
        </context>
    </generatorConfiguration>
    generatorConfig

    生成代码的配置文件配置好,可以直接在模块dao上右键->Run As->Maven build

    这里的Name不用改了,因为是在dao层上右键的。然后把Base directory修改下,单击Browse Workspace,然后选择dao层。在Goals里输入

    mybatis-generator:generate

    然后配置就可以了,点击Apply,然后Run即可。

    看到这个BUILD SUCCESS就说明生成成功了。

    这里因为我之前生成过,所以是overwritten。生成的代码截图为:

    那这样,和数据库交互的基本代码都已经生成了。这里的代码都不要做修改,那么如果需要有自定义的sql之类的,可以另外再建个文件夹,因为这里的都是自动生成的,如果DB有改动的话,重新生成会给这些覆盖,如果自定义的也加到这里了,那么就会被覆盖掉的。

    dao层搞定了,那么继续进行service层的开发。

    首先在service中添加个folder,

    这里会发现,这个resources放在下面的路径了,但是我希望能在java平级的位置,那么做法是

     右键这个模块,属性->Java Build Path->Source->Add Folder,然后勾选resources文件夹,然后OK,然后Apply,最后OK。

     

    然后发现这个resources文件夹就跑到上边了。

    继续创建配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <!-- spring上下文 -->
        <import resource="classpath:ssm-frame-svc.initComp.xml" />
    </beans>
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- context扫描 -->
        <context:annotation-config />
        <context:component-scan base-package="com.ssm.svc" />
    </beans>

    这里有两个配置文件,第一个ssm-frame-svc.springContext.xml是属于这个svc的入口配置文件,这里引入了第二个配置文件ssm-frame-svc.initComp.xml,initComp这个配置文件的目的在这里只有一个就是一个扫描package的工作。那这样来看,这个springContext就是可以没有的啦,嗯嗯,是的,目前来看,这个可以没有。但是为什么还要这么写呢?因为是考虑到后续的开发,在svc中可能会有其他的功能组件需要引用,这里是为了方便管理,直接暴漏给外界的就是springContext这个,后续增加的只是修改这个文件里的引用即可,而不需要修改外部引用的文件。(这里外部引用的文件就是指的web.xml)后续会介绍这个springContext是怎么引入的工程中的。

    配置文件加好了,就是java代码啦

    新建两个folder,分别放接口是实现类。

  • 相关阅读:
    FileZilla 双向传输
    移动端弱网测试工具
    来源IP安全分析,对IP溯源
    推荐几款移动端抓包小工具
    一键清除Chrome
    resit阶段二
    redist集群
    redits04 快照配置
    ridts08管理工具
    redits07配置文件
  • 原文地址:https://www.cnblogs.com/Rexcnblog/p/6409632.html
Copyright © 2011-2022 走看看