博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Velocity + log4j + Spring MVC + Spirng + MyBatis + Maven整合
阅读量:4332 次
发布时间:2019-06-06

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

1. 整合Spring和MyBatis

注意:(1) 如果Mapper接口的名称是HelloWorldMapper,则对应的mapper映射文件也应该名称为HelloWorldMapper.xml或者是helloWorldMapper.xml。

(2) 对于Maven项目而言,我们通常会把配置文件放到resources目录下面的,对于HelloWorldMapper.xml文件我也喜欢放到该目录下面。但是如果直接放到该目录下面是找不到该mapper映射文件的。如果直接放到src/main/java目录对应的HelloWorldMapper接口的目录中是可以找到的,所以我们可以在resources目录下建一个目录为对应于HelloWorldMapper接口的目录。例如:com.jd.mapper.HelloWorldMapper目录,则在resources目录下也建一个目录com.jd.mapper.HelloWorldMapper.xml即可。

(3) 在使用MyBatis的时候,SQL语句是写在xml文件当中的,对于xml格式的文件而言,不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号将你写的含有特殊字符SQL语句括起来,将此类符号不进行解析。

(4) 在使用MyBatis框架的时候,你所写的Java实体类的属性字段必须和数据库中的字段名称相同。如果不同时,要在mapper映射文件中使用

<resultMap>进行特别的处理。

整合过程如下:

  • 项目目录结构

  • 实体bean
package com.jd.common.bean;/** * Created by shifeifei on 2015/7/26. */public class User {    private int id;    private String name;    private String phone;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                ", phone='" + phone + '\'' +                '}';    }}
  • mapper接口,对于mapper接口而言,一定要让它收Spring容器管理。
package com.jd.mapper;import com.jd.common.bean.User;import org.springframework.stereotype.Repository;
/** * Created by shifeifei on 2015/7/26. */
@Repository
public interface HelloWorldMapper {    public User findUserById(Integer id);}
  • Spring的配置文件:spring-config.xml
classpath:/com/jd/mapper/HelloWorldMapper.xml
  • 资源文件:jdbc.properties
#因为是使用的阿里巴巴的连接池,可以不用写mysql的驱动,Druid能够自动的识别各种数据库驱动flow.datasources.username=rootflow.datasources.password=123456flow.datasources.url=jdbc:mysql://172.23.171.169:3306/activity
  • mapper映射文件:HelloWorldMapper.xml

2. 整合Spring MVC + Velocity + log4j

(1) 导入Spring-MVC依赖包:spring-web-3.2.4.RELEASE和spring-webmvc-3.2.4.RELEASE。

(2) 导入Velocity依赖包:veloctiy-1.5和velocity-tools。

(3) 由于使用IDEA作为开发工具,自己新建web项目中servlet的jar包,所以还要导入servlet-api.jar包。

(4) 导入log4j的依赖包。

 

  • Spring MVC的配置文件:spring-mvc.xml
UTF-8
UTF-8
text/html;charset=UTF-8

 

  • web.xml配置
contextConfigLocation
classpath:/spring-config.xml
org.springframework.web.context.ContextLoaderListener
log4jConfigLocation
classpath:/log4j.properties
org.springframework.web.util.Log4jConfigListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
REQUEST
FORWARD
spring-mvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:/spring-mvc.xml
1
spring-mvc
/
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
  • log4j.properties属性文件
#定义LOG输出级别log4j.rootLogger=DEBUG,Console#定义日志输出目的地为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppender#可以灵活地指定日志输出格式,下面一行是指定具体的格式log4j.appender.Console.layout = org.apache.log4j.PatternLayout#输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志log4j.appender.Console.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

 

3. Maven的pom.xml文件

4.0.0
test-framework
integrate-framework
1.0-SNAPSHOT
war
org.springframework
spring-beans
3.2.4.RELEASE
org.springframework
spring-context
3.2.4.RELEASE
org.springframework
spring-context-support
3.2.4.RELEASE
org.springframework
spring-core
3.2.4.RELEASE
org.springframework
spring-expression
3.2.4.RELEASE
org.springframework
spring-jdbc
3.2.4.RELEASE
org.mybatis
mybatis
3.2.2
org.mybatis
mybatis-spring
1.2.0
servlet-api
servlet-api
2.5
org.springframework
spring-web
3.2.4.RELEASE
org.springframework
spring-webmvc
3.2.4.RELEASE
velocity
velocity
1.5
velocity-tools
velocity-tools
1.2
mysql
mysql-connector-java
5.1.26
com.alibaba
druid
0.2.25
log4j
log4j
1.2.17
src/main/resources
true
org.apache.maven.plugins
maven-compiler-plugin
1.6
1.6
utf-8

4. 其他各个部分的代码

(1) controller包下的代码

package com.jd.controller;import com.jd.common.bean.User;import com.jd.service.HelloWorldService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;/** * Created by shifeifei on 2015/7/27. */@Controllerpublic class HelloWorldController {    @Autowired    private HelloWorldService helloWorldServiceImpl;    @RequestMapping( value = "/hello")    public String hello(Model model) {        User user = helloWorldServiceImpl.getUser();        System.out.println("hello: " + user );        model.addAttribute("user",user);        return "index";    }}

 

(2) service包下的代码

package com.jd.service;import com.jd.common.bean.User;/** * Created by shifeifei on 2015/8/1. */public interface HelloWorldService {    public User getUser();}
package com.jd.service;import com.jd.common.bean.User;import com.jd.mapper.HelloWorldMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/** * Created by shifeifei on 2015/8/1. */@Servicepublic class HelloWorldServiceImpl implements HelloWorldService {    @Autowired    private HelloWorldMapper mapper;    @Override    public User getUser() {        return mapper.findUserById(2);    }}

 

(3) mapper包下的代码

package com.jd.mapper;import com.jd.common.bean.User;import org.springframework.stereotype.Repository;/** * Created by shifeifei on 2015/7/26. */@Repositorypublic interface HelloWorldMapper {    public User findUserById(Integer id);}

 

     整合结束,博客有源代码下载,注意我使用的是IDEA开发的,请不要直接把代码导入Eclipse中测试。代码下载链接: 

转载于:https://www.cnblogs.com/shi-blog/p/4695283.html

你可能感兴趣的文章
条件与循环
查看>>
nodejs unit test related----faker-cli, sinonjs, mock/stub
查看>>
20165331 缓冲区溢出漏洞实验
查看>>
二叉树的非递归层次遍历算法
查看>>
SVN操作
查看>>
python爬取房天下数据Demo
查看>>
6-完美解决Error:SSL peer shut down incorrectly
查看>>
什么是固态硬盘及其优缺点【转】
查看>>
解决 nginx 返回数据不完整的方法
查看>>
Apache 配置多个HTTPS站点
查看>>
Python学习笔记_1_基础_7:函数
查看>>
CSS代码规范
查看>>
窗口子类化
查看>>
Angular material mat-icon 资源参考_Hardware
查看>>
Spring cron表达式
查看>>
算法第四章实践报告
查看>>
牛客练习赛29 B
查看>>
数字校园项目-学生失联预警系统(三)----数据库设计
查看>>
C# 6.0部分新特性
查看>>
Docker命令之 exec
查看>>