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

<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中的属性配置,添加根目录属性配置

<!-- 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

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

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

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

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

在子模块中使用方法是

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

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

# -- 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,分别放接口是实现类。

maven工程开始的更多相关文章

  1. Eclipse创建Maven工程报错

    问题 用Eclipse创建maven工程的时候,总是会报错,例如提示: Unable to create project from archetype [org.apache.maven.archet ...

  2. Eclipse中一个Maven工程的目录结构

    在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织的这种问题,跟不要说自己 ...

  3. Mac下maven工程的创建,并搭建SSH环境

    最近项目有用到maven,就特地学了一下.maven的一句话攻略就是,项目托管.帮你解决各种项目琐事:清理,导包....等等. 首先先到apach官网去下载一个maven的包,http://maven ...

  4. 导入maven工程错误

    有时候导入maven工程会报空指针异常: An internal error occurred during: “Updating Maven Project”. java.lang.NullPoin ...

  5. MyEclipse创建Maven工程

    先要在MyEclipse中对Maven进行设置:

  6. Maven工程引入jar包

    Maven项目引入jar包的方法 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—>点击Add Exte ...

  7. 构建简单的Maven工程,使用测试驱动的方式开发项目

    构建简单的Maven工程很简单,这里写这篇随笔的原因是希望自己能记住几个小点. 一.安装Maven 1.下载maven:https://maven.apache.org/download.cgi 2. ...

  8. 002商城项目:maven工程的测试以及svn的使用

    我们上一篇文章搭建了maven工程,这一篇文章我们就要测试这个工程. 1: 由于这个工程还没有页面,我们要首先建立一个页面.在建立页面的jsp的过程中,我发现了一个问题,我这个eclipse由于缺少J ...

  9. 001淘淘商城项目:项目的Maven工程搭建

    开始一个新的项目,特此记录,资料全部来源于传智播客,感谢. 我们要做一个类似电商的项目.用maven做管理. maven里面主要分为三种工程: 1:pom工程:用在父级工程,聚合工程中 2:war工程 ...

  10. 淘淘商城maven工程的创建和svn的上传实现

    后台管理系统工程结构 maven管理的好处 1.项目构建.Maven定义了软件开发的整套流程体系,并进行了封装,开发人员只需要指定项目的构建流程,无需针对每个流程编写自己的构建脚本. 2.依赖管理.除 ...

随机推荐

  1. gulp相关

    'use strict'; var gulp = require('gulp'), webserver = require('gulp-webserver'), //gulp服务器 connect = ...

  2. 《Cracking the Coding Interview》——第18章:难题——题目1

    2014-04-29 00:56 题目:不用算数运算,完成加法. 解法:那就位运算吧,用加法器的做法就可以了. 代码: // 18.1 add two numbers wihout using ari ...

  3. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目8

    2014-03-20 04:04 题目:给你不限量的1分钱.5分钱.10分钱.25分钱硬币,凑成n分钱总共有多少种方法? 解法:理论上来说应该是有排列组合的公式解的,但推导起来太麻烦而且换个数据就又得 ...

  4. Scrapy使用示例

    很多网站都提供了浏览者本地的天气信息,这些信息是如何获取到的呢,方法有很多种,大多是利用某些网站提供的天气api获取的,也有利用爬虫采集的.本文就介绍如何用Scrapy来采集天气信息(从新浪天气频道采 ...

  5. 架构师速成7.3-devops为什么很重要 分类: 架构师速成 2015-07-07 17:22 410人阅读 评论(0) 收藏

    evops是一个很高大上的名字,其实说的简单点就是开发和运维本身就是一个团队的,要干就一起把事情干好.谁出了问题,网站都不行.作为一个架构师,必须要devops,而且要知道如何推行devops. 首先 ...

  6. [转载]Network-Emulator Network-Emulato

    Network-Emulator-Toolkit网络模拟器使用详细介绍 by:授客 QQ:1033553122 原理介绍 图1 如上图,一个ADSL用户通过modem连接到网络,通过网络应用如IE,M ...

  7. Java中Set的contains()方法——hashCode与equals方法的约定及重写原则

    转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...

  8. bash 语言的乘法表

    #!/bin/bash ];then exit fi ; i<$; i++)); do ; j<=i; j++)); do tput setaf $j echo -ne "$j& ...

  9. express常用代码片段

    请求模块: var express = require('express'); var router = express.Router(); // 拿到express框架的路由 var mongoos ...

  10. 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库

    孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...