java 快速构建ssm项目_SSM快速搭建

基本环境搭建

1、 创建Maven工程

2、 导入项目相关依赖的jar包

spring

springmvc

mybatis

mysql

junit

spring-test

lombok

devtools

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

4.0.0

org.example

ssm-crud

1.0-SNAPSHOT

org.springframework

spring-webmvc

5.2.8.RELEASE

org.springframework

spring-aspects

5.2.8.RELEASE

org.springframework

spring-jdbc

5.2.8.RELEASE

org.springframework

spring-aop

5.2.8.RELEASE

org.springframework

spring-tx

5.2.8.RELEASE

com.fasterxml.jackson.core

jackson-databind

2.11.2

org.mybatis

mybatis

3.5.0

org.mybatis

mybatis-spring

2.0.5

mysql

mysql-connector-java

8.0.21

com.alibaba

druid

1.1.24

javax.servlet.jsp

javax.servlet.jsp-api

2.3.3

provided

jstl

jstl

1.2

javax.servlet

javax.servlet-api

4.0.1

provided

junit

junit

4.12

test

org.springframework

spring-test

5.2.8.RELEASE

test

org.mybatis.generator

mybatis-generator-core

1.4.0

com.github.pagehelper

pagehelper

5.1.10

com.github.jsqlparser

jsqlparser

3.1

org.projectlombok

lombok

1.18.12

provided

org.springframework.boot

spring-boot-devtools

1.5.6.RELEASE

true

3、 引用bootstrap前端框架

4、 编写ssm相关配置文件

web.xml

spring-mvc.xml

appicationContext.xml

spring-mybatis.xml

jdbc.properties

4.1、web.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

com.example.demo.Listener.MyContextListener

dispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

dispatcherServlet

/

characterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceRequestEncoding

true

forceResponseEncoding

true

characterEncodingFilter

/*

hiddenHttpMethodFilter

org.springframework.web.filter.HiddenHttpMethodFilter

hiddenHttpMethodFilter

/*

4.2、spring-mvc.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

4.3、appicationContext.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

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

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

4.4、spring-mybatis.xml

/p>

"http://mybatis.org/dtd/mybatis-3-config.dtd">

4.5、jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

jdbc.username=root

jdbc.password=12345678

4.6、log4j.properties

#############

# 输出到控制台

#############

# log4j.rootLogger日志输出类别和级别:只输出不低于该级别的日志信息DEBUG < INFO < WARN < ERROR < FATAL

# WARN:日志级别 CONSOLE:输出位置自己定义的一个名字 logfile:输出位置自己定义的一个名字

log4j.rootLogger=WARN,CONSOLE,logfile

# 配置CONSOLE输出到控制台

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

# 配置CONSOLE设置为自定义布局模式

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

# 配置CONSOLE日志的输出格式 [frame] 2019-08-22 22:52:12,000 %r耗费毫秒数 %p日志的优先级 %t线程名 %C所属类名通常为全类名 %L代码中的行号 %x线程相关联的NDC %m日志 %n换行

log4j.appender.CONSOLE.layout.ConversionPattern=[frame] %d{yyyy-MM-dd HH:mm:ss,SSS} - %-4r %-5p [%t] %C:%L %x - %m%n

################

# 输出到日志文件中

################

# 配置logfile输出到文件中 文件大小到达指定尺寸的时候产生新的日志文件

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

# 保存编码格式

log4j.appender.logfile.Encoding=UTF-8

# 输出文件位置此为项目根目录下的logs文件夹中

log4j.appender.logfile.File=logs/root.log

# 后缀可以是KB,MB,GB达到该大小后创建新的日志文件

log4j.appender.logfile.MaxFileSize=10MB

# 设置滚定文件的最大值3 指可以产生root.log.1、root.log.2、root.log.3和root.log四个日志文件

log4j.appender.logfile.MaxBackupIndex=3

# 配置logfile为自定义布局模式

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

##########################

# 对不同的类输出不同的日志文件

##########################

# club.bagedate包下的日志单独输出

log4j.logger.club.bagedate=DEBUG,bagedate

# 设置为false该日志信息就不会加入到rootLogger中了

log4j.additivity.club.bagedate=false

# 下面就和上面配置一样了

log4j.appender.bagedate=org.apache.log4j.RollingFileAppender

log4j.appender.bagedate.Encoding=UTF-8

log4j.appender.bagedate.File=logs/bagedate.log

log4j.appender.bagedate.MaxFileSize=10MB

log4j.appender.bagedate.MaxBackupIndex=3

log4j.appender.bagedate.layout=org.apache.log4j.PatternLayout

log4j.appender.bagedate.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

5、工具类

5.1.1 Msg(封装返回信息的对象)

@Data

public class Msg {

//100代表成功,200代表失败

private int code;

private String message;

private Map data;

public Msg() {

data = new HashMap<>();

}

public static Msg success() {

Msg msg = new Msg();

msg.setCode(100);

msg.setMessage("处理成功!");

return msg;

}

public static Msg error() {

Msg msg = new Msg();

msg.setCode(200);

msg.setMessage("处理失败!");

return msg;

}

public Msg addData(String s, Object o) {

data.put(s, o);

return this;

}

}

6、mybatis generator(mybatis逆向工程)

6.1、配置文件

/p>

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

connectionURL="jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"

userId="root"

password="12345678">

6.2、生成文件的类

public class Generator {

@Test

public void generator() throws Exception {

List warnings = new ArrayList();

// 指定配置文件

File configFile = new File("F:/MyProjects/complete/ssm-crud/generatorConfig.xml");

ConfigurationParser cp = new ConfigurationParser(warnings);

Configuration config = cp.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(true);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

myBatisGenerator.generate(null);

}

}

遇到的坑

坑一

c3p0-0.9.5.2 jar包缺少其它依赖

解决办法:添加mchange-commons-java-0.2.20 jar包(注意jar包版本)

com.mchange

mchange-commons-java

0.2.20

坑二

pagehelper-5.1.10 jar包缺少其它依赖

解决方法:添加jsqlparser-3.1 jar包(注意jar包版本)

com.github.jsqlparser

jsqlparser

3.1

坑三

关闭tomcat时报错

错误提示:Web应用程序[ROOT]似乎启动了一个名为[C3P0PooledConnectionPoolManager[identityToken->31usy7ac1ocyx2d1tj3xmv|630da823]-AdminTaskTimer]的线程,但未能停止它。这很可能会造成内存泄漏。

解决方法: 换数据源druid

com.alibaba

druid

1.1.24

坑四

关闭tomcat时报错

错误提示:为防止内存泄漏,JDBC驱动程序已被强制取消注册。

解决方法:配置监听器jie

com.example.demo.config.listener.MyContextListener

public class MyContextListener implements ServletContextListener {

@Override

public void contextInitialized(ServletContextEvent arg0) {

System.out.println("webService start");

}

@Override

public void contextDestroyed(ServletContextEvent arg0) {

System.out.println("webService stop");

try {

while (DriverManager.getDrivers().hasMoreElements()) {

DriverManager.deregisterDriver(DriverManager.getDrivers().nextElement());

}

System.out.println("jdbc Driver close");

AbandonedConnectionCleanupThread.checkedShutdown();

System.out.println("clean thread success");

} catch (SQLException e) {

e.printStackTrace();

}

}

}

坑五

使用lombok插件,编写实体类时,某成员变量的第二个字母为大写,导致springmvc无法接收前台传来的参数

解决方法:自己编写setter/getter

private Integer dId;

//解决dId无法接收参数的问题,下面的命名方式是JavaBean规范命名

public Integer getdId() {

return dId;

}

public void setdId(Integer dId) {

this.dId = dId;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jpa 查询 列表_终极JPA查询和技巧列表–第2部分

jpa 查询 列表这一部分是该系列文章的第一部分 。 JPA&#xff1a;NamedQuery&#xff0c;使用日期查询&#xff0c;有关getSingleResult方法的警告 为了避免重复查询代码&#xff0c;提高性能并简化维护查询&#xff0c;我们可以使用NamedQueries。 NamedQuery使用JPQL作为语…

IE针对Ajax请求结果的缓存IE浏览器同一个请求第二次是缓存数据不刷新

IE针对Ajax请求结果的缓存IE浏览器同一个请求第二次是缓存数据不刷新 IE针对Ajax请求结果的缓存/ IE浏览器同一个请求第二次是缓存 一.在AJAX请求的属性上直接设置cache function getSetServer (selectIDs) {$.ajax({url:/kl_eas/v1/monitor/servers? new Date().toTimeString…

亿联本科java_厦门亿联2018面试题

一、选择器public class EqTest {public static void main(String[] args) {EqTest e new EqTest();}public EqTest() {String s "Java";String s2 "java";//if (s.equalsIgnoreCase(s2)){System.out.println("相等");} else {System.out.pri…

如何将云持久存储添加到JBoss Cool Store

我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 带有JBoss Cool Store的App Dev Cloud 上个月&#xff0c;我们提供了一个完整的零售示例&#xff0c;其中的JBoss Cool Store运行在您的堆栈的OpenShift Enterprise层上&#xff0c;由…

吴莫烦

https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/2-1-NN/转载于:https://www.cnblogs.com/lhuser/p/8446525.html

mysql 表单属性_php表单常用属性有什么?

程序开发中&#xff0c;必不可少的会使用到form表单&#xff0c;以前只是在前端开发时简单使用&#xff0c;对它的属性不甚了解&#xff0c;最近在后端学习中&#xff0c;不断接触到它的属性,现记录一二。下面本篇文章给大家介绍php表单常用的5个属性。actionaction规定了提交表…

centos-安装python3.6环境并配置虚拟环境

python3.6下载地址&#xff1a;https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz linux下python环境配置 统一目录&#xff1a; 源码存放位置 $HOME/tools安装目录&#xff1a; /application安装python环境&#xff1a; 1. 下载 # 创建下载目录 mkdir $HOME/tools #…

java构造器详解_Java中关于构造器的使用详解

这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方&#xff0c;需要的朋友可以参考下Java构造器使用方法及注意事项超类的构造器在子类的构造器运行之前运行&#xff0c;也就是说&#xff0c;在创建对象时&#xff0c;先运…

i219 2012驱动_2012年I / O之后

i219 2012驱动从注册到赠品&#xff0c;每年的I / O疯狂都在不断发展。 在今年20分钟内被出售&#xff0c;并没有阻止Google赠送更多的东西。 以这种速度并有望在明年发布Google Glass&#xff0c;明年注册很可能会变得更加混乱&#xff01; 因此&#xff0c;Google&#xff0c…

Mac 工程化工具

工程化工具 一、HomeBerw 安装 / 卸载 Mac系统的包管理器&#xff0c;用于安装NodeJS和一些其他必需的工具软件 1.安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 译注&#xff1a;在Max OS X 10.11&…

java的sql的like_[Java教程]SQL like 模糊查询, in

[Java教程]SQL like 模糊查询, in0 2018-09-14 11:00:38​[{"互联网":["网络媒体","微博","墨迹天气","河北天气","其他"]},{"气象部门":["灾害大典","灾情普查","灾情直报&q…

9.管好进程和服务

1.查看进程 1.进程分类进程一般分为交互进程、批处理进程和守护进程三类。上述三种进程各有各的作用&#xff0c;使用场合也有所不同。 交互进程&#xff1a;由一个 shell 启动的进程。交互进程既可以在前台运行&#xff0c;也可以在后台运行。 批处理进程&#xff1a;这种…

惠而浦:使用Netty和Kafka的微服务

介绍 在上一个博客中 &#xff0c;我介绍了Netty用作Web服务器。 该示例运行良好……只要需要广播服务器即可。 大多数情况下不是很有用。 更有可能的是&#xff0c;每个客户端仅接收针对其的数据&#xff0c;并保留了特殊情况下的广播&#xff0c;例如“服务器在15分钟内停机…

石化总部java面试题_中国石化面试经验

面试过程&#xff1a;首先&#xff0c;上午进行面试人员签到&#xff0c;大约100人左右。一共要2个人。下午1点半开始统一面试。人员较多&#xff0c;所以每个人只有3分钟时间&#xff0c;一共最少8位面试官。过程中&#xff0c;他们很少提问题&#xff0c;如果你的技术比较新颖…

ajax标准

$.ajax({url:"localhost:8889/server", //请求的url地址dataType:"json", //返回格式为jsonasync:true,//请求是否异步&#xff0c;默认为异步&#xff0c;这也是ajax重要特性data:{"id":"value"}, //参数值type:"GET&qu…

java 生成器 设计模式_Java中的生成器设计模式

java 生成器 设计模式Java 中的 Builder设计模式是一种创建模式&#xff0c;即用于创建对象&#xff0c;类似于 工厂方法设计模式 &#xff0c;这也是创建设计模式。 在学习任何设计模式之前&#xff0c;我建议先找出特定设计模式要解决的问题。 众所周知&#xff0c; 必要性是…

python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...

关于倒排索引搜索引擎通常检索的场景是&#xff1a;给定几个关键词&#xff0c;找出包含关键词的文档。怎么快速找到包含某个关键词的文档就成为搜索的关键。这里我们借助单词——文档矩阵模型&#xff0c;通过这个模型我们可以很方便知道某篇文档包含哪些关键词&#xff0c;某…

Spring RESTful Web服务中的异常处理

1.简介 我们可能已经在Spring中遇到了几种处理RESTful Web服务应用程序中异常的方法。 在本文中&#xff0c;我们将尝试探索可以采取的最佳方法来实现有效的异常处理。 2.问题陈述 让我们创建一个简单的应用程序&#xff0c;该应用程序将在REST URI中标识员工姓名。 如果请求中…

java调python画图_Python Matplotlib plot 绘图

1、绘制x和y点plot()函数用于在图中绘制点(标记)。默认情况下&#xff0c;plot()函数在点到点之间画一条线。该函数具有用于在图中指定点的参数。参数1是一个数组&#xff0c;其中包含x轴上的点。参数2是一个包含y轴上的点的数组。如果需要绘制从(1&#xff0c;3)到(8&#xff…

区块链以信用为基础,所以目前在中国不可行.

还是先整一套规范的含金量高的信用体系再说吧.转载于:https://www.cnblogs.com/diggingdeeply/p/impossible_success_in_china_right_now_bcoz_of_lack_credit.html