使用IntelliJ IDEA 搭建SSM框架教程

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 使用IntelliJ IDEA 搭建SSM框架教程

1.基本概念

SSM框架指:Spring MVC + Spring + MyBatis

Spring MVC是一种web层mvc框架,用于替代servlet,处理|响应请求,获取表单参数,表单校验等

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 (摘自百度百科)。

2.开发环境

安装java jdk,MySQL,IntelliJ IDEA,Tomcat,Maven

这是我电脑上的java和MySQL版本

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

Tomcat 我用的

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

IntelliJ IDEA我用的

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

Maven我用的3.6.0

3.搭建SSM框架

打开IntelliJ IDEA,选择 File》Project》New Project ,左侧栏选择 Maven ,右侧Project SDK 会是默认的java,选择Create from archetype,选择下图中的2

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图Next,进入下图,GroupId和ArtifactId是Maven项目的坐标,保证项目的唯一性。如果项目上传到了maven本地仓库去,必须根据这两个id去查找项目。

GroupId 一般分为多段,这里只说两段,第一段为域,第二段为公司名称。域包括:org、com、cn等,其中org为非营利组织,com为商业组织。

ArtifactId实际对应项目的名称,就是项目根目录的名称。这样说起来比较抽象,下面举例说明:

例如下图中:GroupId是cn.only,它的域是cn(因为cn表示中国),个人项目所以为only,ArtifactId是helloworld。 GroupId实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactId实际对应项目的名称。

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图Next,进入下图,选择本地Maven的位置,我的Maven版本是3.6.0

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图Next,进入下图,选择项目的存放地址,如下图,注意Project location中一定要有项目名字,项目名称默认

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图Finish,IntelliJ IDEA右下角弹窗如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击Enable Auto-Import,以后更改pom文件后就会自动下载依赖包了,所以点击Enable Auto-Import。

等待几分钟,项目正在下载相关依赖包,下载完毕以后,项目的目录结构如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

.idea:IntelliJ IDEA 在本项目中的配置,可以删掉,删掉后打开项目要重新配置。

src:存放项目代码

pom.xml:maven的配置文件,需要什么jar包,在里面添加依赖,maven会自动下到本地仓库。

现在构建SSM项目结构:

在src下建test文件夹,用来放测试文件,在test文件夹下建java和resources文件夹:

选择test的下的java文件夹,鼠标右键选择Mark Directory  as》Test Sources Root

选择test的下的resources文件夹,鼠标右键选择Mark Directory  as》Test Resources Root

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

在main文件夹下建java和resources文件夹:

选择main的下的java文件夹,鼠标右键选择Mark Directory  as》Sources Root

选择main的下的resources文件夹,鼠标右键选择Mark Directory  as》Resources Root

在src》main》java文件夹下建package,鼠标选择java文件夹,右键选择New》Package,建Package,名字就是上面GroupId,为cn.only

一步一步教你用IntelliJ IDEA 搭建SSM框架(1) 一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

在cn.only下建4个Package:controller:用来放前台url映射文件,dao用来放与数据库的接口文件,entity用来放实体类文件,service用来放自己定义的接口

鼠标选择java,右键选择New》Package,建Package,名字为cn.only.controller,controller Package添加成功如下图

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

继续鼠标选择java,右键选择New》Package,建Package,名字为cn.only.dao,dao Package添加成功如下图

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

entity和service的添加方法一样如上,名字为cn.only.entity和cn.only.service,添加成功,如下图

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

src》main》resources下添加两个文件夹: spring和sqlmap,spring下添加spring的配置文件applicationContext.xml

src》main》resources下再添加四个配置文件:generator.properties ,generatorConfig.xml ,jdbc.properties 和 log4j.properties

generator.properties和generatorConfig.xml :用来配置mybatis

jdbc.properties :配置数据库相关信息

log4j.properties:配置日志

resources的目录结构如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

src》main》webapp下新建文件夹:js ,css,images 用来存放前端资源

src》main》webapp》WEB-INF下新建views文件夹,jsp页面放在这里。

webapp 的目录结构如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

整个项目的目录已经构建好,如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

下面开始配置项目

根目录下的pom.xml:POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等。在Maven中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

打开pom.xml,会发现已经默认有一些配置了,下面是我的pom.xml配置文件:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
?xml version="1.0" encoding="UTF-8"? project xmlns="http://maven.apache.org/POM/4.0.0" 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"  modelVersion4.0.0/modelVersion   groupIdcn.only/groupId  artifactIdhelloworld/artifactId  version1.0-SNAPSHOT/version  packagingwar/packaging   namehelloworld Maven Webapp/name  !-- FIXME change it to the project's website --  urlhttp://www.example.com/url   properties    project.build.sourceEncodingUTF-8/project.build.sourceEncoding    maven.compiler.source1.7/maven.compiler.source    maven.compiler.target1.7/maven.compiler.target    !-- spring版本号 --    spring.version4.2.5.RELEASE/spring.version    !-- mybatis版本号 --    mybatis.version3.2.4/mybatis.version    !-- log4j日志文件管理包版本 --    slf4j.version1.6.6/slf4j.version    log4j.version1.2.12/log4j.version  /properties   dependencies    dependency      groupIdjunit/groupId      artifactIdjunit/artifactId      version4.11/version      scopetest/scope    /dependency    !-- spring核心包 --    !-- springframe start --    dependency      groupIdorg.springframework/groupId      artifactIdspring-core/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-web/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-oxm/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-tx/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-jdbc/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-webmvc/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-aop/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-context-support/artifactId      version${spring.version}/version    /dependency     dependency      groupIdorg.springframework/groupId      artifactIdspring-test/artifactId      version${spring.version}/version    /dependency    !-- springframe end --     !-- mybatis核心包 --    dependency      groupIdorg.mybatis/groupId      artifactIdmybatis/artifactId      version${mybatis.version}/version    /dependency    !-- mybatis/spring包 --    dependency      groupIdorg.mybatis/groupId      artifactIdmybatis-spring/artifactId      version1.2.2/version    /dependency    !-- mysql驱动包 --    dependency      groupIdmysql/groupId      artifactIdmysql-connector-java/artifactId      version5.0.8/version    /dependency     !-- jstl --    dependency      groupIdjavax.servlet/groupId      artifactIdjstl/artifactId      version1.2/version    /dependency    dependency      groupIdjavax.servlet.jsp/groupId      artifactIdjsp-api/artifactId      version2.2.1-b03/version      scopeprovided/scope    /dependency     !-- servlet --    dependency      groupIdjavax.servlet/groupId      artifactIdservlet-api/artifactId      version2.5/version      scopeprovided/scope    /dependency    !-- json数据 --    dependency      groupIdcom.fasterxml.jackson.core/groupId      artifactIdjackson-core/artifactId      version2.7.1/version    /dependency    dependency      groupIdcom.fasterxml.jackson.core/groupId      artifactIdjackson-annotations/artifactId      version2.7.1/version    /dependency    dependency      groupIdcom.fasterxml.jackson.core/groupId      artifactIdjackson-databind/artifactId      version2.7.1/version    /dependency    dependency      groupIdnet.sf.json-lib/groupId      artifactIdjson-lib/artifactId      version2.4/version      classifierjdk15/classifier    /dependency    !-- commons --    dependency      groupIdcommons-lang/groupId      artifactIdcommons-lang/artifactId      version2.4/version    /dependency    dependency      groupIdcommons-logging/groupId      artifactIdcommons-logging/artifactId      version1.1/version    /dependency    dependency      groupIdcommons-pool/groupId      artifactIdcommons-pool/artifactId      version1.5.6/version    /dependency    dependency      groupIdcommons-dbcp/groupId      artifactIdcommons-dbcp/artifactId      version1.4/version    /dependency    dependency      groupIdcommons-beanutils/groupId      artifactIdcommons-beanutils/artifactId      version1.8.3/version    /dependency    dependency      groupIdcommons-httpclient/groupId      artifactIdcommons-httpclient/artifactId      version3.1/version    /dependency    dependency      groupIdcommons-collections/groupId      artifactIdcommons-collections/artifactId      version3.1/version    /dependency    dependency      groupIdcommons-codec/groupId      artifactIdcommons-codec/artifactId      version1.9/version    /dependency    dependency      groupIdjavax.annotation/groupId      artifactIdjsr250-api/artifactId      version1.0/version    /dependency     dependency      groupIdnet.sf.ezmorph/groupId      artifactIdezmorph/artifactId      version1.0.6/version    /dependency    dependency      groupIdjavax.activation/groupId      artifactIdactivation/artifactId      version1.1/version    /dependency    dependency      groupIdtaglibs/groupId      artifactIdstandard/artifactId      version1.1.2/version    /dependency    !-- 日志文件管理包 --    !-- log start --    dependency      groupIdlog4j/groupId      artifactIdlog4j/artifactId      version${log4j.version}/version    /dependency    dependency      groupIdorg.slf4j/groupId      artifactIdslf4j-api/artifactId      version${slf4j.version}/version    /dependency    dependency      groupIdorg.slf4j/groupId      artifactIdslf4j-log4j12/artifactId      version${slf4j.version}/version    /dependency    !--上传--    dependency      groupIdcommons-fileupload/groupId      artifactIdcommons-fileupload/artifactId      version1.3.1/version    /dependency    dependency      groupIdcommons-io/groupId      artifactIdcommons-io/artifactId      version2.4/version    /dependency    !-- log end --  /dependencies   build    finalNamehello/finalName    pluginManagement!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --      plugins        plugin          artifactIdmaven-clean-plugin/artifactId          version3.1.0/version        /plugin        !-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --        plugin          artifactIdmaven-resources-plugin/artifactId          version3.0.2/version        /plugin        plugin          artifactIdmaven-compiler-plugin/artifactId          version3.8.0/version        /plugin        plugin          artifactIdmaven-surefire-plugin/artifactId          version2.22.1/version        /plugin        plugin          artifactIdmaven-war-plugin/artifactId          version3.2.2/version        /plugin        plugin          artifactIdmaven-install-plugin/artifactId          version2.5.2/version        /plugin        plugin          artifactIdmaven-deploy-plugin/artifactId          version2.8.2/version        /plugin      /plugins    /pluginManagement    plugins      !-- mybatis-generator --      plugin        groupIdorg.mybatis.generator/groupId        artifactIdmybatis-generator-maven-plugin/artifactId        version1.3.2/version        configuration          !-- mybatis-generator的配置文件,根据情况调整位置 --          configurationFilesrc/main/resources/generatorConfig.xml/configurationFile          verbosetrue/verbose          overwritetrue/overwrite        /configuration        executions          execution            idGenerate MyBatis Artifacts/id            goals              goalgenerate/goal            /goals          /execution        /executions        dependencies          dependency            groupIdorg.mybatis.generator/groupId            artifactIdmybatis-generator-core/artifactId            version1.3.2/version          /dependency        /dependencies      /plugin    /plugins  /build/project

?xml version=”1.0” encoding=”UTF-8”?

project xmlns=”http://maven.apache.org/POM/4.0.0" 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"
modelVersion4.0.0/modelVersion

groupIdcn.only/groupId
artifactIdhelloworld/artifactId
version1.0-SNAPSHOT/version
packagingwar/packaging

namehelloworld Maven Webapp/name
!– FIXME change it to the project’s website –
urlhttp://www.example.com/url

properties
project.build.sourceEncodingUTF-8/project.build.sourceEncoding
maven.compiler.source1.7/maven.compiler.source
maven.compiler.target1.7/maven.compiler.target
!– spring版本号 –
spring.version4.2.5.RELEASE/spring.version
!– mybatis版本号 –
mybatis.version3.2.4/mybatis.version
!– log4j日志文件管理包版本 –
slf4j.version1.6.6/slf4j.version
log4j.version1.2.12/log4j.version
/properties

dependencies
dependency
groupIdjunit/groupId
artifactIdjunit/artifactId
version4.11/version
scopetest/scope
/dependency
!– spring核心包 –
!– springframe start –
dependency
groupIdorg.springframework/groupId
artifactIdspring-core/artifactId
version${spring.version}/version
/dependency


dependency
  groupIdorg.springframework/groupId
  artifactIdspring-web/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-oxm/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-tx/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-jdbc/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-webmvc/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-aop/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-context-support/artifactId
  version${spring.version}/version
/dependency

dependency
  groupIdorg.springframework/groupId
  artifactIdspring-test/artifactId
  version${spring.version}/version
/dependency
!-- springframe end --

!-- mybatis核心包 --
dependency
  groupIdorg.mybatis/groupId
  artifactIdmybatis/artifactId
  version${mybatis.version}/version
/dependency
!-- mybatis/spring包 --
dependency
  groupIdorg.mybatis/groupId
  artifactIdmybatis-spring/artifactId
  version1.2.2/version
/dependency
!-- mysql驱动包 --
dependency
  groupIdmysql/groupId
  artifactIdmysql-connector-java/artifactId
  version5.0.8/version
/dependency

!-- jstl --
dependency
  groupIdjavax.servlet/groupId
  artifactIdjstl/artifactId
  version1.2/version
/dependency
dependency
  groupIdjavax.servlet.jsp/groupId
  artifactIdjsp-api/artifactId
  version2.2.1-b03/version
  scopeprovided/scope
/dependency

!-- servlet --
dependency
  groupIdjavax.servlet/groupId
  artifactIdservlet-api/artifactId
  version2.5/version
  scopeprovided/scope
/dependency
!-- json数据 --
dependency
  groupIdcom.fasterxml.jackson.core/groupId
  artifactIdjackson-core/artifactId
  version2.7.1/version
/dependency
dependency
  groupIdcom.fasterxml.jackson.core/groupId
  artifactIdjackson-annotations/artifactId
  version2.7.1/version
/dependency
dependency
  groupIdcom.fasterxml.jackson.core/groupId
  artifactIdjackson-databind/artifactId
  version2.7.1/version
/dependency
dependency
  groupIdnet.sf.json-lib/groupId
  artifactIdjson-lib/artifactId
  version2.4/version
  classifierjdk15/classifier
/dependency
!-- commons --
dependency
  groupIdcommons-lang/groupId
  artifactIdcommons-lang/artifactId
  version2.4/version
/dependency
dependency
  groupIdcommons-logging/groupId
  artifactIdcommons-logging/artifactId
  version1.1/version
/dependency
dependency
  groupIdcommons-pool/groupId
  artifactIdcommons-pool/artifactId
  version1.5.6/version
/dependency
dependency
  groupIdcommons-dbcp/groupId
  artifactIdcommons-dbcp/artifactId
  version1.4/version
/dependency
dependency
  groupIdcommons-beanutils/groupId
  artifactIdcommons-beanutils/artifactId
  version1.8.3/version
/dependency
dependency
  groupIdcommons-httpclient/groupId
  artifactIdcommons-httpclient/artifactId
  version3.1/version
/dependency
dependency
  groupIdcommons-collections/groupId
  artifactIdcommons-collections/artifactId
  version3.1/version
/dependency
dependency
  groupIdcommons-codec/groupId
  artifactIdcommons-codec/artifactId
  version1.9/version
/dependency
dependency
  groupIdjavax.annotation/groupId
  artifactIdjsr250-api/artifactId
  version1.0/version
/dependency

dependency
  groupIdnet.sf.ezmorph/groupId
  artifactIdezmorph/artifactId
  version1.0.6/version
/dependency
dependency
  groupIdjavax.activation/groupId
  artifactIdactivation/artifactId
  version1.1/version
/dependency
dependency
  groupIdtaglibs/groupId
  artifactIdstandard/artifactId
  version1.1.2/version
/dependency
!-- 日志文件管理包 --
!-- log start --
dependency
  groupIdlog4j/groupId
  artifactIdlog4j/artifactId
  version${log4j.version}/version
/dependency
dependency
  groupIdorg.slf4j/groupId
  artifactIdslf4j-api/artifactId
  version${slf4j.version}/version
/dependency
dependency
  groupIdorg.slf4j/groupId
  artifactIdslf4j-log4j12/artifactId
  version${slf4j.version}/version
/dependency
!--上传--
dependency
  groupIdcommons-fileupload/groupId
  artifactIdcommons-fileupload/artifactId
  version1.3.1/version
/dependency
dependency
  groupIdcommons-io/groupId
  artifactIdcommons-io/artifactId
  version2.4/version
/dependency
!-- log end --

/dependencies

build
finalNamehello/finalName
pluginManagement!– lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) –
plugins
plugin
artifactIdmaven-clean-plugin/artifactId
version3.1.0/version
/plugin
!– see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging
plugin
artifactIdmaven-resources-plugin/artifactId
version3.0.2/version
/plugin
plugin
artifactIdmaven-compiler-plugin/artifactId
version3.8.0/version
/plugin
plugin
artifactIdmaven-surefire-plugin/artifactId
version2.22.1/version
/plugin
plugin
artifactIdmaven-war-plugin/artifactId
version3.2.2/version
/plugin
plugin
artifactIdmaven-install-plugin/artifactId
version2.5.2/version
/plugin
plugin
artifactIdmaven-deploy-plugin/artifactId
version2.8.2/version
/plugin
/plugins
/pluginManagement
plugins
!– mybatis-generator –
plugin
groupIdorg.mybatis.generator/groupId
artifactIdmybatis-generator-maven-plugin/artifactId
version1.3.2/version
configuration
!– mybatis-generator的配置文件,根据情况调整位置 –
configurationFilesrc/main/resources/generatorConfig.xml/configurationFile
verbosetrue/verbose
overwritetrue/overwrite
/configuration
executions
execution
idGenerate MyBatis Artifacts/id
goals
goalgenerate/goal
/goals
/execution
/executions
dependencies
dependency
groupIdorg.mybatis.generator/groupId
artifactIdmybatis-generator-core/artifactId
version1.3.2/version
/dependency
/dependencies
/plugin
/plugins
/build
/project

配置applicationContext.xml,我的配置如下:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
?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"       xmlns:beans="http://www.springframework.org/schema/beans"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xsi:schemaLocation="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd         http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-4.3.xsd         http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"       !-- ①:对com.springmvc包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --    context:component-scan base-package="com.springmvc"/    mvc:annotation-driven /    !-- 静态资源访问 --    !--如果webapp下你新建了文件夹,想访问里面的静态资源,那么就要在这配置一下--    mvc:resources location="/images/" mapping="/images/**"/    mvc:resources location="/css/" mapping="/css/**"/    mvc:resources location="/js/" mapping="/js/**"/     !-- Configures the @Controller programming model    mvc:annotation-driven /--    !-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --    bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"        property name="messageConverters"            list                ref bean="mappingJacksonHttpMessageConverter"/            /list        /property    /bean     bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"        property name="supportedMediaTypes"            list                valueapplication/json;charset=UTF-8/value            /list        /property    /bean         !-- 配置视图解析器,把控制器的逻辑视频映射为真正的视图 --    !-- /WEB-INF/jsp/start.jsp --    bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"        property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/        property name="prefix" value="/WEB-INF/views/" /        property name="suffix" value=".jsp" /    /bean        !-- 配置dbcp数据库连接池 --     !-- context:property-placeholder location="classpath:db.properties"/ --    !--数据库配置 --    bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"        property name="locations"            list                valueclasspath:jdbc.properties/value            /list        /property     /bean     !-- 数据库连接池 --    bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"        property name="driverClassName" value="${jdbc.driver}"/        property name="url" value="${jdbc.url}"/        property name="username" value="${username}"/        property name="password" value="shiotc123"/        property name="initialSize" value="1"/        property name="maxActive" value="100"/        property name="maxIdle" value="5"/        property name="maxWait" value="80000"/    /bean     !-- 配置事务管理器 --    bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"        property name="dataSource" ref="dataSource" /    /bean     !-- 拦截器 --    mvc:interceptors        !-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 --        bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /    /mvc:interceptors    !-- 定义无Controller的path-view直接映射 --    !-- mvc:view-controller path="/" view-name="redirect:/" / -- /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"
xmlns:beans=”http://www.springframework.org/schema/beans"
xmlns:mvc=”http://www.springframework.org/schema/mvc"
xsi:schemaLocation=”http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"


!-- ①:对com.springmvc包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --
context:component-scan base-package="com.springmvc"/
mvc:annotation-driven /
!-- 静态资源访问 --
!--如果webapp下你新建了文件夹,想访问里面的静态资源,那么就要在这配置一下--
mvc:resources location="/images/" mapping="/images/**"/
mvc:resources location="/css/" mapping="/css/**"/
mvc:resources location="/js/" mapping="/js/**"/

!-- Configures the @Controller programming model
mvc:annotation-driven /--
!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --
bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
    property name="messageConverters"
        list
            ref bean="mappingJacksonHttpMessageConverter"/
        /list
    /property
/bean

bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"
    property name="supportedMediaTypes"
        list
            valueapplication/json;charset=UTF-8/value
        /list
    /property
/bean





!-- 配置视图解析器,把控制器的逻辑视频映射为真正的视图 --
!-- /WEB-INF/jsp/start.jsp --
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/
    property name="prefix" value="/WEB-INF/views/" /
    property name="suffix" value=".jsp" /
/bean




!-- 配置dbcp数据库连接池 --

!-- context:property-placeholder location="classpath:db.properties"/ --
!--数据库配置 --
bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
    property name="locations"
        list
            valueclasspath:jdbc.properties/value
        /list
    /property

/bean

!-- 数据库连接池 --
bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
    property name="driverClassName" value="${jdbc.driver}"/
    property name="url" value="${jdbc.url}"/
    property name="username" value="${username}"/
    property name="password" value="shiotc123"/
    property name="initialSize" value="1"/
    property name="maxActive" value="100"/
    property name="maxIdle" value="5"/
    property name="maxWait" value="80000"/
/bean

!-- 配置事务管理器 --
bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
    property name="dataSource" ref="dataSource" /
/bean

!-- 拦截器 --
mvc:interceptors
    !-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 --
    bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /
/mvc:interceptors
!-- 定义无Controller的path-view直接映射 --
!-- mvc:view-controller path="/" view-name="redirect:/" / --

/beans

配置jdbc.properties

12345678910111213141516
jdbc.driver=com.mysql.jdbc.Driver#test为我本地的数据库名jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTCusername=root#下面输入自己数据库的密码password=*****#定义初始连接数initialSize=0#定义最大连接数maxActive=20#定义最大空闲maxIdle=20#定义最小空闲minIdle=1#定义最长等待时间maxWait=60000

jdbc.driver=com.mysql.jdbc.Driver
#test为我本地的数据库名
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username=root
#下面输入自己数据库的密码
password=*****
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

配置log4j.properties

123456789101112131415161718192021222324252627
### set log levels ###log4j.rootLogger = INFO,D ###输出到控制台###log4j.logger.toConsole=debug,stdoutlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayout  log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n ### 输出到日志文件 #####  其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录  如果没有logs文件夹 将会报错  ####  更加倾向于将日志文件放在  tomcat的日志目录下${catalina.home}/logs/salesmanb2bError.log ####  绝对路径如:e:/salesmanb2bError.log ##log4j.logger.daily=INFO,Dlog4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ${catalina.home}/logs/helloworld/helloworld.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = INFOlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n  ##log4j.logger.org.apache.ibatis=debug,stdout##log4j.logger.java.sql=debug,stdout

set log levels

log4j.rootLogger = INFO,D

###输出到控制台###
log4j.logger.toConsole=debug,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

输出到日志文件

其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录 如果没有logs文件夹 将会报错

更加倾向于将日志文件放在 tomcat的日志目录下${catalina.home}/logs/salesmanb2bError.log

绝对路径如:e:/salesmanb2bError.log

log4j.logger.daily=INFO,D
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.home}/logs/helloworld/helloworld.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

##log4j.logger.org.apache.ibatis=debug,stdout
##log4j.logger.java.sql=debug,stdout

配置web.xml

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
?xml version="1.0" encoding="UTF-8"?web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"  display-namehelloworld/display-name  !-- 配置编码方式--  filter    filter-nameencodingFilter/filter-name    filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class    init-param      param-nameencoding/param-name      param-valueUTF-8/param-value    /init-param    init-param      param-nameforceEncoding/param-name      param-valuetrue/param-value    /init-param  /filter  filter-mapping    filter-nameencodingFilter/filter-name    url-pattern/*/url-pattern  /filter-mapping    !-- 配置springmvc的前端控制器 指向spring-mvc.xml 程序在启动的时候就加载springmvc 可以接受所有请求 load-on-startup:表示启动容器时初始化该Servlet; --  servlet    servlet-namespringServlet/servlet-name    servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class    !-- 可以自定义servlet.xml配置文件的位置和名称, 默认为WEB-INF目录下,名称为[servlet-name]-servlet.xml,如spring-servlet.xml --    init-param      param-namecontextConfigLocation/param-name      param-value classpath:spring/applicationContext.xml/param-value    /init-param    load-on-startup1/load-on-startup  /servlet  !-- 将前端URL请求和后台处理方法controller建立对应关系--  servlet-mapping    servlet-namespringServlet/servlet-name    url-pattern//url-pattern  /servlet-mapping   !-- Spring配置 --  listener    listener-class      org.springframework.web.context.ContextLoaderListener    /listener-class  /listener  !-- 取消对某一类文件的拦截--  servlet-mapping    servlet-namedefault/servlet-name    url-pattern*.md/url-pattern  /servlet-mapping   context-param    param-namecontextConfigLocation/param-name    param-value classpath:spring/applicationContext.xml/param-value  /context-param  !-- 欢迎页面--  welcome-file-list    welcome-file/WEB-INF/index.jsp/welcome-file  /welcome-file-list  !--404错误展示页面,可自行配置--  !--error-page--  !--error-code404/error-code--  !--location/WEB-INF/views/404.jsp/location--  !--/error-page--  !--设置session失效时间为30分钟 --  session-config    session-timeout600/session-timeout  /session-config/web-app

?xml version=”1.0” encoding=”UTF-8”?
web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" xmlns=”http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version=”3.0”
display-namehelloworld/display-name
!– 配置编码方式–
filter
filter-nameencodingFilter/filter-name
filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class
init-param
param-nameencoding/param-name
param-valueUTF-8/param-value
/init-param
init-param
param-nameforceEncoding/param-name
param-valuetrue/param-value
/init-param
/filter
filter-mapping
filter-nameencodingFilter/filter-name
url-pattern/*/url-pattern
/filter-mapping

!– 配置springmvc的前端控制器 指向spring-mvc.xml 程序在启动的时候就加载springmvc 可以接受所有请求 load-on-startup:表示启动容器时初始化该Servlet; –
servlet
servlet-namespringServlet/servlet-name
servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class
!– 可以自定义servlet.xml配置文件的位置和名称, 默认为WEB-INF目录下,名称为[servlet-name]-servlet.xml,如spring-servlet.xml –
init-param
param-namecontextConfigLocation/param-name
param-value classpath:spring/applicationContext.xml/param-value
/init-param
load-on-startup1/load-on-startup
/servlet
!– 将前端URL请求和后台处理方法controller建立对应关系–
servlet-mapping
servlet-namespringServlet/servlet-name
url-pattern//url-pattern
/servlet-mapping

!– Spring配置 –
listener
listener-class
org.springframework.web.context.ContextLoaderListener
/listener-class
/listener
!– 取消对某一类文件的拦截–
servlet-mapping
servlet-namedefault/servlet-name
url-pattern*.md/url-pattern
/servlet-mapping

context-param
param-namecontextConfigLocation/param-name
param-value classpath:spring/applicationContext.xml/param-value
/context-param
!– 欢迎页面–
welcome-file-list
welcome-file/WEB-INF/index.jsp/welcome-file
/welcome-file-list
!–404错误展示页面,可自行配置–
!–error-page–
!–error-code404/error-code–
!–location/WEB-INF/views/404.jsp/location–
!–/error-page–
!–设置session失效时间为30分钟 –
session-config
session-timeout600/session-timeout
/session-config
/web-app

最后配置Tomcat,配置好Tomcat代码就可以跑起来了。选择Add Configuration…》弹出配置窗口,如下图

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图红框中的+,选择Tomcat Server》Local,弹出窗口,如下图,

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

配置Application server,在上图中选择红框中的configure…,弹出窗口如下图,选择Tomcat的安装路径,配置好Tomcat。

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

配置Deployment,如下图,

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

上图中,点击+,选择Artifact…,弹窗如下图,

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

上图中选择红框中内容,点击OK,如下图:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

点击上图OK,Tomcat配置完毕。

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

如上图,点击绿色三角形,运行程序。

运行结果如下:

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)

程序正常启动,spring mvc已经搭建好,下一篇文章配置mybatis-geneator,这是一款mybatis自动代码生成工具。

原文始发于:https://www.cnblogs.com/greenteaone/p/11078108.html

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 使用IntelliJ IDEA 搭建SSM框架教程


 上一篇
Spring Resource框架体系介绍 Spring Resource框架体系介绍
点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 作者:c旋儿 www.cnblogs.com/cxuanBlog www.cnblogs.com/cxuanBlog Resource介绍在使用sprin
2021-04-05
下一篇 
Java开发必须掌握的 20+ 种 Spring 常用注解 Java开发必须掌握的 20+ 种 Spring 常用注解
点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 作者:IT_faquir 链接:https://blog.csdn.net/IT_faquir 链接:https://blog.csdn.net/IT_f
2021-04-05