最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用(附源码)

网友投稿 227 2022-11-05


最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用(附源码)

这里使用 Maven 项目管理工具构建项目

初始化项目

打开 Intellij IDEA,点击 Create New Project

选择 Maven 构建项目

选择 JDK 版本

选择 maven-archetype-webapp 模板(java Web 项目)

填写项目在 Maven 仓库中的坐标(在 Maven 仓库中根据这个坐标才能找到该项目)

选择 Maven 路径

选择 Maven 配置文件路径

选择 Maven 本地仓库路径

填写项目名

选择工作目录

创建目录

在 src > main 目录下分别新建 java 源码目录 和 resource 配置文件目录

java 目录下创建基本的源码目录结构

webapp 目录下创建 static 目录,用于存放静态资源文件(css, js, img 等)

webapp > WEB-INF 目录下创建 views 目录,用于存放视图页面(jsp, html 等)

pom.xml

完整的 pom.xml 配置如下

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.antoniopeng

ssm-example

1.0-SNAPSHOT

war

hhttp://ello-ssm Maven Webapp

https://antoniopeng.com

UTF-8

UTF-8

1.8

1.1.6

4.5.5

1.5

1.3.2

3.5

5.3.4.Final

2.9.5

1.2

4.12

2.3

1.2.17

1.16.18

1.3.1

3.2.8

5.1.46

3.1.0

1.7.25

4.3.17.RELEASE

org.springframework

spring-test

${spring.version}

junit

junit

${junit.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-aspects

${spring.version}

javax.servlet

javax.servlet-api

${servlet-api.version}

provided

javax.servlet

jstl

${jstl.version}

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.slf4j

jcl-over-slf4j

${slf4j.version}

org.slf4j

jul-to-slf4j

${slf4j.version}

log4j

log4j

${log4j.version}

org.apache.commons

commons-lang3

${commons-lang3.version}

commons-fileupload

commons-fileupload

${commons-fileupload.version}

org.apache.commons

commons-email

${commons-email.version}

com.alibaba

druid

${alibaba-druid.version}

mysql

mysql-connector-java

${mysql.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

${mybaits-spring.version}

org.springframework

spring-jdbc

${spring.version}

org.hibernate

hibernate-validator

${hibernate-validator.version}

com.fasterxml.jackson.core

jackson-core

${jackson.version}

com.fasterxml.jackson.core

jackson-databind

${jackson.version}

com.fasterxml.jackson.core

jackson-annotations

${jackson.version}

org.apache.httpcomponents

httpclient

${apache-httpclient.version}

org.apache.httpcomponents

fluent-hc

${apache-httpclient.version}

org.apache.httpcomponents

httpmime

${apache-httpclient.version}

org.projectlombok

lombok

${lombok.version}

org.apache.maven.plugins

maven-install-plugin

2.5.2

org.apache.maven.plugins

maven-compiler-plugin

3.7.0

${java.version}

${java.version}

${project.build.sourceEncoding}

true

src/main/java

**/*.java

src/main/resources

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.antoniopeng

ssm-example

1.0-SNAPSHOT

war

hhttp://ello-ssm Maven Webapp

https://antoniopeng.com

UTF-8

UTF-8

1.8

1.1.6

4.5.5

1.5

1.3.2

3.5

5.3.4.Final

2.9.5

1.2

4.12

2.3

1.2.17

1.16.18

1.3.1

3.2.8

5.1.46

3.1.0

1.7.25

4.3.17.RELEASE

org.springframework

spring-test

${spring.version}

junit

junit

${junit.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-aspects

${spring.version}

javax.servlet

javax.servlet-api

${servlet-api.version}

provided

javax.servlet

jstl

${jstl.version}

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.slf4j

jcl-over-slf4j

${slf4j.version}

org.slf4j

jul-to-slf4j

${slf4j.version}

log4j

log4j

${log4j.version}

org.apache.commons

commons-lang3

${commons-lang3.version}

commons-fileupload

commons-fileupload

${commons-fileupload.version}

org.apache.commons

commons-email

${commons-email.version}

com.alibaba

druid

${alibaba-druid.version}

mysql

mysql-connector-java

${mysql.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

${mybaits-spring.version}

org.springframework

spring-jdbc

${spring.version}

org.hibernate

hibernate-validator

${hibernate-validator.version}

com.fasterxml.jackson.core

jackson-core

${jackson.version}

com.fasterxml.jackson.core

jackson-databind

${jackson.version}

com.fasterxml.jackson.core

jackson-annotations

${jackson.version}

org.apache.httpcomponents

httpclient

${apache-httpclient.version}

org.apache.httpcomponents

fluent-hc

${apache-httpclient.version}

org.apache.httpcomponents

httpmime

${apache-httpclient.version}

org.projectlombok

lombok

${lombok.version}

org.apache.maven.plugins

maven-install-plugin

2.5.2

org.apache.maven.plugins

maven-compiler-plugin

3.7.0

${java.version}

${java.version}

${project.build.sourceEncoding}

true

src/main/java

**/*.java

src/main/resources

全局配置文件

resources 目录下创建全局配置文件,供后续调用

# JDBC

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.connectionURL=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false

jdbc.username=root

jdbc.password=123456

# JDBC Pool

jdbc.pool.init=1

jdbc.pool.minIdle=3

jdbc.pool.maxActive=20

# Web View Location

web.view.prefix=/WEB-INF/views/

web.view.suffix=.jsp

# Upload Size

web.maxUploadSize=10485760

Spring 核心配置

resources 目录下创建 spring-context.xml

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

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

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd http://springframework.org/schema/tx http://springframework.org/schema/tx/spring-tx.xsd">

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

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

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd http://springframework.org/schema/tx http://springframework.org/schema/tx/spring-tx.xsd">

整合 Spring MVC

创建 spring-mvc.xml

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

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

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

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd

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

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

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

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

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd

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

MyBatis 配置

创建 mybatis-config.xml

整合 Druid

resources 目录下创建 spring-context-druid.xml

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

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

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

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

整合 MyBatis

resources 目录下创建 spring-context-mybatis.xml

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

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

日志配置

创建 log4j.properties 日志配置文件

log4j.rootLogger=error, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

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

log4j.appender.stdout.layout.ConversionPattern=[service] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.ibatis = debug

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = debug

log4j.logger.com.ibatis.common.jdbc.ScriptRunner = debug

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = debug

log4j.logger.java.sql.Connection = debug

log4j.logger.java.sql.Statement = debug

log4j.logger.java.sql.PreparedStatement = debug

log4j.logger.java.sql.ResultSet =debug

log4j.logger.com.pro.mapper =debug

web.xml

完整的 web.xml 配置如下:

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

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

version="3.1">

/login

contextConfigLocation

classpath:spring-context*.xml

org.springframework.web.context.ContextLoaderListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

springServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

springServlet

/

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

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

version="3.1">

/login

contextConfigLocation

classpath:spring-context*.xml

org.springframework.web.context.ContextLoaderListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

springServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

springServlet

/

创建访问视图

在 webapp > WEB-INF > views 目录下新建 index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

Hello SSM

在 controller 目录下创建 IndexController 类

package com.antoniopeng.hello.ssm.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class IndexController {

@RequestMapping(value = "/")

public String index() {

return "index";

}

}

部署到 Tomcat 服务器

点击 Intellij IDEA 右上方 Add Configuration..

添加 Tomcat 本地服务器配置

配置下载好的 Tomcat 服务器

Tomcat8 官网下载地址

设置访问端口号,默认 8080

将项目添加到 Tomcat 服务器

最后运行项目,访问 http://localhost:8080/ 即可。

源码地址:https://github.com/antoniopeng/ssm-example.git


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:建设银行卡号查询API(建设银行卡号查询电话)
下一篇:被执行人信息查询API(被执行人信息查询多久查不到)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~