博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven 集成spring ,mybatis
阅读量:5885 次
发布时间:2019-06-19

本文共 16248 字,大约阅读时间需要 54 分钟。

  maven工程分模块项目可以模块与模块之间的耦合度降低,各模块之间的联系就没有那么的紧密。通常情况下为了打包方便,建立一个父类的模块。这样打包发布的时候就不用一个个模块打包过去,只有父类的模块手动打包下就可以了,

 

工程如下图所示:

 其中book-parent为父类模块,book-core持久层,book-service为服务层,book-web的可视化层 ,既分别对应mvc中的相应层。

 

一、book-core

1、添加包支持,pom.xml配置如下:

 

4.0.0
book-core
jar
com.myWebApp
book-parent
0.0.1-SNAPSHOT
../book-parent/pom.xml
book-core
UTF-8
org.hibernate
hibernate-core
org.apache.logging.log4j
log4j-core
org.slf4j
slf4j-log4j12
com.google.code.gson
gson
org.javassist
javassist
org.springframework
spring-core
org.springframework
spring-context
org.springframework
spring-test
org.springframework
spring-aop
org.springframework
spring-beans
org.springframework
spring-orm
org.springframework
spring-test
org.springframework
spring-aspects
org.apache.commons
commons-dbcp2
mysql
mysql-connector-java
junit
junit
org.mybatis
mybatis
javax.persistence
persistence-api
org.mybatis
mybatis-spring
com.google.code.gson
gson
commons-dbcp
commons-dbcp
1.4
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
true
true

  父类pom.xml配置如下:

4.0.0
com.myWebApp
book-parent
0.0.1-SNAPSHOT
pom
book-parent
http://maven.apache.org
../book-core
../book-service
../book-web
UTF-8
org.hibernate
hibernate-core
4.2.1.Final
org.apache.logging.log4j
log4j-core
2.0
org.slf4j
slf4j-log4j12
1.6.1
com.google.code.gson
gson
2.2.4
javax.persistence
persistence-api
1.0.2
org.javassist
javassist
3.15.0-GA
org.springframework
spring-core
4.0.6.RELEASE
org.springframework
spring-context
4.0.6.RELEASE
org.springframework
spring-test
4.0.6.RELEASE
org.springframework
spring-aop
4.0.6.RELEASE
org.springframework
spring-beans
4.0.6.RELEASE
org.springframework
spring-orm
4.1.3.RELEASE
org.springframework
spring-aspects
4.0.6.RELEASE
org.springframework
spring-web
4.0.6.RELEASE
org.apache.commons
commons-dbcp2
2.0.1
mysql
mysql-connector-java
5.1.6
junit
junit
4.11
test
com.google.code.gson
gson
2.2.4
javax.servlet
javax.servlet-api
3.0.1
provided
org.springframework
spring-webmvc
4.0.6.RELEASE
org.codehaus.jackson
jackson-mapper-asl
1.9.13
org.mybatis
mybatis
3.2.4
org.mybatis
mybatis-spring
1.2.2
javax.servlet.jsp.jstl
jstl-api
1.2
com.myWebApp
book-core
0.0.1-SNAPSHOT
com.myWebApp
book-service
0.0.1-SNAPSHOT
org.apache.maven.plugins
maven-source-plugin
2.4
jar-no-fork

  注意:有些包是多余的,

2、实体类User代码如下:

package com.mr.cheng.entity;public class User {    private Integer id;    private String descn;    private String username;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getDescn() {        return descn;    }    public void setDescn(String descn) {        this.descn = descn == null ? null : descn.trim();    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username == null ? null : username.trim();    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password == null ? null : password.trim();    }}

3、User实体类对已的Dao与xml文件代码如下:

delete from users where Id = #{id,jdbcType=INTEGER}
insert into users (Id, descn, username, password) values (#{id,jdbcType=INTEGER}, #{descn,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR})
update users set descn = #{descn,jdbcType=VARCHAR}, username = #{username,jdbcType=VARCHAR}, password = #{password,jdbcType=VARCHAR} where Id = #{id,jdbcType=INTEGER}

  

package com.mr.cheng.dao;import com.mr.cheng.entity.User;import java.util.List;import org.springframework.stereotype.Component;/** * 注意注解@Component必须有,也可以用Service或者Controller代替 * @author zwc * */@Componentpublic interface IUserDao {    int deleteByPrimaryKey(Integer id);    int insert(User record);    User selectByPrimaryKey(Integer id);    List
selectAll(); int updateByPrimaryKey(User user);}

4、spring-mybatis.xml配置如下:

5、测试类如下:

package com.mr.cheng.test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.mr.cheng.dao.IUserDao;import com.mr.cheng.entity.User;public class MyAppTest {	@Autowired	private IUserDao iUserDao;		public void addUserTest(){		User user = new User();		user.setDescn("111");		user.setPassword("password");		user.setUsername("cheng");		iUserDao.insert(user);	}}

  

二、book-service

1、book-service是服务层,它对外提供接口。控制层不需要知道具体的实现,只有根据相应的接口就可以去选择他要想的服务。

接口代码如下:

package com.mr.cheng.biz;import java.util.List;import org.springframework.stereotype.Component;import com.mr.cheng.entity.User;@Componentpublic interface UserBizDao {    int deleteByPrimaryKey(Integer id);    int insert(User record);    User selectByPrimaryKey(Integer id);    List
selectAll(); int updateByPrimaryKey(User user);}
View Code

实现类:

package com.mr.cheng.biz.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.mr.cheng.biz.UserBizDao;import com.mr.cheng.dao.IUserDao;import com.mr.cheng.entity.User;@Servicepublic class UserBizDaoImpl implements UserBizDao {    @Autowired    private IUserDao iUserDao;    public int deleteByPrimaryKey(Integer id) {        iUserDao.deleteByPrimaryKey(id);        return 0;    }    public int insert(User record) {        iUserDao.insert(record);        return 0;    }    public User selectByPrimaryKey(Integer id) {        return iUserDao.selectByPrimaryKey(id);    }    public List
selectAll() { return iUserDao.selectAll(); } public int updateByPrimaryKey(User user) { iUserDao.updateByPrimaryKey(user); return 0; }}
View Code

 

2、配置文件:

spring-service如下:

View Code

pom.xml代码如下:

4.0.0
book-service
jar
book-parent
com.myWebApp
0.0.1-SNAPSHOT
../book-parent/pom.xml
book-service
UTF-8
com.myWebApp
book-core
junit
junit
org.apache.maven.plugins
maven-source-plugin
View Code

三、book-web模块

1、book-web是web项目,在这个模块项目中他有页面以及相应的控制层组成。页面既是mvc中的视图 ,同事也包含了mvc中的控制层。

控制层代码:

package com.mr.cheng.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.mr.cheng.biz.UserBizDao;import com.mr.cheng.entity.User;@Controller@RequestMapping("/userController.do")public class UserController {    @Autowired    private UserBizDao userBizDao;    @RequestMapping("/login")    public String login(){        User user = new User();        user.setDescn("1111");        user.setUsername("abc");        user.setPassword("pass");        userBizDao.insert(user);        return "success";    }}
View Code

spring-web配置:

View Code

 

 spring-mvc配日志:

View Code

web.xml配置:

hello
rui Java Deploy V1.1.0
log4jConfigLocation
config/properties/log4j.properties
contextConfigLocation
classpath*:config/spring-web.xml classpath*:config/spring-service.xml classpath*:config/spring-mybatis.xml
springMvc
org.springframework.web.servlet.DispatcherServlet
ContextConfigLocation
classpath:config/spring-mvc.xml
1
springMvc
/*
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
index.jsp
View Code

 

转载于:https://www.cnblogs.com/chengAddress/p/4434781.html

你可能感兴趣的文章
高并发环境下,Redisson实现redis分布式锁
查看>>
关于浏览器的cookie
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>
Tengine新增nginx upstream模块的使用
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
汽车常识全面介绍 - 悬挂系统
查看>>
加快ALTER TABLE 操作速度
查看>>
学习笔记之软考数据库系统工程师教程(第一版)
查看>>
PHP 程序员的技术成长规划
查看>>