菜鸟一枚,刚刚接触Spring不久,前段时间按照网上的demo写了下SSM,发现好多都不懂,好不容易程序能运行,也能出应有的结果,但想再次安全靠自己写一遍,各个步骤完全记不住,因此发一随笔做好记录,方便后续查看。该随笔按我自己的步骤一一记录下来,内容包括SpringMVC的配置,以及mybatis generator自动生成xml配置、entity、dao层等信息。本工程的编辑器用的是IDEA,数据库用的MySQL。
一、新建工程
1、 运行IDEA,选择创建一个新工程,选择maven,创建对应的java web项目。
2、填写GroupId和ArtifactId
3、配置本地maven仓库(我这里已经配置过了,所以显示如下)
更改maven的本地仓库——更改C:\Users\用户名\.m2\setting.xml文件(如果没有该文件,可以去“idea安装目录\plugins\maven\lib\maven3\conf”下复制过来,该目录是在安装idea时选择安装maven插件时自动生成的)中添加<localRepository>本地仓库地址</localRepository>
4、填写工程名
完成工程的创建。
5、为了去除spring等框架版本和jdk版本不兼容问题,在settings里修改工程的jdk版本。
6、更改项目结构
(图中的xml文件都是后续创建的,可以不管)
- java 主Java代码文件夹
- controller 控制器文件文件夹
- dao 数据访问层文件夹
- service 业务逻辑层文件夹
- entity 实体层文件夹
- resources 资源文件夹(要将此定义为Sources Root,不然classpath不会指向该目录,卡了本菜鸟好久=_=。右键选择Mark directory as-->Sources Root-->显示)
- mapper mybatis sql文件夹
- webapp web页面文件夹
-WEB-INF web应用的安全目录
- test 测试文件夹
二、Maven包的初始化
1、修改pom.xml配置文件相关jar包的自动导入
参考配置如下:

1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.mycompany.app</groupId> 8 <artifactId>Demo</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 <name>Demo Maven Webapp</name> 13 <!-- FIXME change it to the project's website --> 14 <url>http://maven.apache.org</url> 15 16 <dependencies> 17 <dependency> 18 <groupId>junit</groupId> 19 <artifactId>junit</artifactId> 20 <version>4.12</version> 21 <scope>test</scope> 22 </dependency> 23 <dependency> 24 <groupId>org.springframework</groupId> 25 <artifactId>spring-core</artifactId> 26 <version>4.3.5.RELEASE</version> 27 </dependency> 28 <dependency> 29 <groupId>org.springframework</groupId> 30 <artifactId>spring-aop</artifactId> 31 <version>4.3.5.RELEASE</version> 32 </dependency> 33 <dependency> 34 <groupId>org.springframework</groupId> 35 <artifactId>spring-orm</artifactId> 36 <version>4.3.5.RELEASE</version> 37 </dependency> 38 <dependency> 39 <groupId>org.springframework</groupId> 40 <artifactId>spring-tx</artifactId> 41 <version>4.3.5.RELEASE</version> 42 </dependency> 43 <dependency> 44 <groupId>org.springframework</groupId> 45 <artifactId>spring-test</artifactId> 46 <version>4.3.5.RELEASE</version> 47 </dependency> 48 <dependency> 49 <groupId>org.springframework</groupId> 50 <artifactId>spring-mock</artifactId> 51 <version>2.0.8</version> 52 </dependency> 53 <dependency> 54 <groupId>org.springframework</groupId> 55 <artifactId>spring-jdbc</artifactId> 56 <version>4.3.5.RELEASE</version> 57 </dependency> 58 <dependency> 59 <groupId>org.springframework</groupId> 60 <artifactId>spring-context</artifactId> 61 <version>4.3.5.RELEASE</version> 62 </dependency> 63 <dependency> 64 <groupId>org.springframework</groupId> 65 <artifactId>spring-context-support</artifactId> 66 <version>4.3.5.RELEASE</version> 67 </dependency> 68 <dependency> 69 <groupId>org.springframework</groupId> 70 <artifactId>spring-expression</artifactId> 71 <version>4.3.5.RELEASE</version> 72 </dependency> 73 <!--Spring Web + Spring MVC--> 74 <dependency> 75 <groupId>org.springframework</groupId> 76 <artifactId>spring-web</artifactId> 77 <version>4.3.1.RELEASE</version> 78 </dependency> 79 <dependency> 80 <groupId>org.springframework</groupId> 81 <artifactId>spring-webmvc</artifactId> 82 <version>4.3.1.RELEASE</version> 83 </dependency> 84 <dependency> 85 <groupId>com.github.pagehelper</groupId> 86 <artifactId>pagehelper</artifactId> 87 <version>3.7.3</version> 88 </dependency> 89 <dependency> 90 <groupId>com.github.jsqlparser</groupId> 91 <artifactId>jsqlparser</artifactId> 92 <version>0.9.1</version> 93 </dependency> 94 <!--mysql jdbc--> 95 <dependency> 96 <groupId>mysql</groupId> 97 <artifactId>mysql-connector-java</artifactId> 98 <version>5.1.38</version> 99 </dependency> 100 <!--c3p0--> 101 <dependency> 102 <groupId>c3p0</groupId> 103 <artifactId>c3p0</artifactId> 104 <version>0.9.1.2</version> 105 </dependency> 106 <!--NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config--> 107 <!-- https://mvnrepository.com/artifact/jstl/jstl --> 108 <dependency> 109 <groupId>jstl</groupId> 110 <artifactId>jstl</artifactId> 111 <version>1.2</version> 112 </dependency> 113 <!--file upload jar package--> 114 <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> 115 <dependency> 116 <groupId>commons-fileupload</groupId> 117 <artifactId>commons-fileupload</artifactId> 118 <version>1.3.1</version> 119 </dependency> 120 <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> 121 <dependency> 122 <groupId>commons-io</groupId> 123 <artifactId>commons-io</artifactId> 124 <version>2.4</version> 125 </dependency> 126 <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --> 127 <dependency> 128 <groupId>commons-lang</groupId> 129 <artifactId>commons-lang</artifactId> 130 <version>2.6</version> 131 </dependency> 132 <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils --> 133 <dependency> 134 <groupId>commons-beanutils</groupId> 135 <artifactId>commons-beanutils</artifactId> 136 <version>1.8.3</version> 137 </dependency> 138 <!-- https://mvnrepository.com/artifact/commons-collections/commons-collections --> 139 <dependency> 140 <groupId>commons-collections</groupId> 141 <artifactId>commons-collections</artifactId> 142 <version>3.2.1</version> 143 </dependency> 144 <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> 145 <dependency> 146 <groupId>commons-logging</groupId> 147 <artifactId>commons-logging</artifactId> 148 <version>1.2</version> 149 </dependency> 150 <!-- https://mvnrepository.com/artifact/net.sf.ezmorph/ezmorph --> 151 <dependency> 152 <groupId>net.sf.ezmorph</groupId> 153 <artifactId>ezmorph</artifactId> 154 <version>1.0.6</version> 155 </dependency> 156 <!--json serialize and deserialization--> 157 <!-- 引入fastjson依赖 --> 158 <dependency> 159 <groupId>com.alibaba</groupId> 160 <artifactId>fastjson</artifactId> 161 <version>1.2.12</version> 162 </dependency> 163 <!-- 引入gson依赖 --> 164 <dependency> 165 <groupId>com.google.code.gson</groupId> 166 <artifactId>gson</artifactId> 167 <version>2.6.2</version> 168 </dependency> 169 <!--Base64 加解密--> 170 <!-- https://mvnrepository.com/artifact/net.iharder/base64 --> 171 <dependency> 172 <groupId>net.iharder</groupId> 173 <artifactId>base64</artifactId> 174 <version>2.3.8</version> 175 </dependency> 176 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> 177 <dependency> 178 <groupId>commons-codec</groupId> 179 <artifactId>commons-codec</artifactId> 180 <version>1.10</version> 181 </dependency> 182 <!--log4j--> 183 <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> 184 <dependency> 185 <groupId>org.apache.logging.log4j</groupId> 186 <artifactId>log4j-core</artifactId> 187 <version>2.6.2</version> 188 </dependency> 189 <dependency> 190 <groupId>org.jetbrains</groupId> 191 <artifactId>annotations-java5</artifactId> 192 <version>RELEASE</version> 193 </dependency> 194 <!--mybatis 应用mybatis需要导入mybatis,将mybatis和spring整合在一起需要导入mybatis-spring--> 195 <dependency> 196 <groupId>org.mybatis</groupId> 197 <artifactId>mybatis</artifactId> 198 <version>3.3.0</version> 199 </dependency> 200 <dependency> 201 <groupId>org.mybatis</groupId> 202 <artifactId>mybatis-spring</artifactId> 203 <version>1.2.3</version> 204 </dependency> 205 <dependency> 206 <groupId>org.mybatis.generator</groupId> 207 <artifactId>mybatis-generator-core</artifactId> 208 <version>1.3.2</version> 209 </dependency> 210 </dependencies> 211 212 <build> 213 <finalName>Demo</finalName> 214 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 215 <plugins> 216 <plugin> 217 <artifactId>maven-clean-plugin</artifactId> 218 <version>3.0.0</version> 219 </plugin> 220 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> 221 <plugin> 222 <artifactId>maven-resources-plugin</artifactId> 223 <version>3.0.2</version> 224 </plugin> 225 <plugin> 226 <artifactId>maven-compiler-plugin</artifactId> 227 <version>3.7.0</version> 228 </plugin> 229 <plugin> 230 <artifactId>maven-surefire-plugin</artifactId> 231 <version>2.20.1</version> 232 </plugin> 233 <plugin> 234 <artifactId>maven-war-plugin</artifactId> 235 <version>3.2.0</version> 236 </plugin> 237 <plugin> 238 <artifactId>maven-install-plugin</artifactId> 239 <version>2.5.2</version> 240 </plugin> 241 <plugin> 242 <artifactId>maven-deploy-plugin</artifactId> 243 <version>2.8.2</version> 244 </plugin> 245 </plugins> 246 </pluginManagement> 247 </build> 248 </project>
三、SpringMVC的配置
1、(一般在resource文件夹或者WEB-INF文件夹)新建spring-servlet.xml文件(文件名称一般为“xxx-servlet.xml”),声明SpringMVC框架对控制器、页面、资源的访问。
a) 启动注解驱动的Spring MVC功能,<mvc:annotation-driven/>
b) 启动包扫描功能, <context:component-scan base-package="controller"/>
完整的spring-servlet.xml代码如下(除上述两步外,还要补全xml的头文件):

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xmlns:Context="http://www.springframework.org/schema/context" 6 xsi:schemaLocation=" 7 http://www.springframework.org/schema/beans 8 http://www.springframework.org/schema/beans/spring-beans.xsd 9 http://www.springframework.org/schema/mvc 10 http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 11 http://www.springframework.org/schema/context 12 http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 13 <mvc:annotation-driven/> 14 <Context:component-scan base-package="controller"/> 15 </beans>
2、配置web.xml,并将spring-servlet.xml配置加入进去(若spring-servlet.xml在WEB-INF文件夹下则可以不用加入,本工程是将其放在WEB-INF文件夹下)。
a) Spring分为多个文件进行分别的配置,其中在<servlet></servlet>中如果没有指定init-param属性,那么系统会自动去WEB-INF寻找文件名为[servlet名]-servlet.xml的spring配置文件。
若在resource文件夹下:

<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </init-param>
b) 配置servlet映射。

<servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
完整的web.xml代码如下(同样要补全头文件,添加欢迎页):

1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns="http://java.sun.com/xml/ns/javaee" 6 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 7 version="3.0"> 8 <display-name>Archetype Created Web Application</display-name> 9 <welcome-file-list> 10 <welcome-file>/index.jsp</welcome-file> 11 </welcome-file-list> 12 <!-- Spring MVC配置 --> 13 <servlet> 14 <servlet-name>spring</servlet-name> 15 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 16 <!--Spring-servlet.xml config 17 <init-param> 18 <param-name>contextConfigLocation</param-name> 19 <param-value>classpath:spring-servlet.xml</param-value> 20 </init-param> --> 21 <!--若在WEB-INF文件夹下,也可以指定目录 22 <init-param> 23 <param-name>contextConfigLocation</param-name> 24 <param-value>/WEB-INF/spring-servlet.xml</param-value> 25 </init-param>--> 26 <!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法) --> 27 <load-on-startup>1</load-on-startup> 28 </servlet> 29 <servlet-mapping> 30 <servlet-name>spring</servlet-name> 31 <url-pattern>/</url-pattern> 32 </servlet-mapping> 33 </web-app>
至此,我们完成了SpringMVC的配置。做一个简单的测试,验证上述步骤是否正确。
1、在controller包下新建HelloController.java

1 package controller; 2 3 import org.springframework.web.bind.annotation.GetMapping; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RestController; 6 7 @RestController 8 @RequestMapping("/hello") 9 public class HelloController { 10 @GetMapping 11 public String hello() { 12 return "<h1>hello</h1>"; 13 } 14 }
2、配置Tomcat(如果没有安装,则需要先安装Tomcat服务器)
a) 打开Tomcat配置界面
选择Edit Configurations
b) 添加local Tomcat
c) 为其命名(当然也可以不用命名),其他都是默认设置
d) 部署项目
e) 选择Tomcat服务器,运行项目
如果SpringMVC配置无误的话,浏览器会跳到欢迎页。
然后在地址栏敲入http://localhost:8080/hello,会在页面显示java文件返回的字符串。
四、通过MyBatis Generator自动生成entity、mapper和dao层
1、在test数据库创建student表(本工程应用mysql-font来创建)
2、pom.xml配置插件build节点下加入插件

1 <!-- *Mapper.xml自动生成的插件--> 2 <plugin> 3 <groupId>org.mybatis.generator</groupId> 4 <artifactId>mybatis-generator-maven-plugin</artifactId> 5 <version>1.3.2</version> 6 <configuration> 7 <verbose>true</verbose> 8 <overwrite>true</overwrite> 9 </configuration> 10 </plugin>
3、在resource文件夹下创建generatorConfig.xml文件,参考配置如下:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 3 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > 4 <generatorConfiguration> 5 <!-- 配置mysql-connector-java的jar包地址 --> 6 <classPathEntry location="E:\java\maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/> <!--E:/java/maven/repository/mysql/mysql-connector-java/5.1.38/--> 7 <context id="context1"> 8 <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" 9 userId="root" password="root"/><!--数据库连接--> 10 <!--生成Model类存放位置--> 11 <javaModelGenerator targetPackage="entity" targetProject="src/main/java"> 12 <property name="enableSubPackages" value="true"/> 13 </javaModelGenerator> 14 <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"><!--生成的mapper文件--> 15 <property name="enableSubPackages" value="true"/> 16 </sqlMapGenerator> 17 <javaClientGenerator targetPackage="dao" targetProject="src/main/java" type="XMLMAPPER"><!--生成的dao层接口)--> 18 <property name="enableSubPackages" value="true"/> 19 </javaClientGenerator> 20 <table schema="" tableName="student" domainObjectName="Student" 21 enableCountByExample="false" 22 enableUpdateByExample="false" 23 enableDeleteByExample="false" 24 enableSelectByExample="false" 25 selectByExampleQueryId="false"> 26 </table> 27 </context> 28 </generatorConfiguration>
这里要首先下载一个mysql-connector-java-5.1.38.jar包,并将其路径写在<classPathEntry location="E:\java\maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>
4、配置自动生成启动环境
a) 同配置Tomcat一样,选择Edit Configurations。
b) 选择maven,并为其命名,以及配置命令
c) 运行mybatis-generator,便可以自动生成entity、mapper和dao层,结果如下。可以看到自动生成了三个文件。
从而完成了通过MyBatis Generator自动生成entity、mapper和dao层。自动生成的方法不止这一种。
五、Spring和Mybatis的配置
1、在resource文件夹添加mybatis配置文件 spring-mybatis.xml,并配置有关jdbc的内容。

1 <!-- 配置数据源 --> 2 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 3 <property name="driverClass" value="com.mysql.jdbc.Driver"/> 4 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/> 5 <property name="user" value="root"/> 6 <property name="password" value="root"/> 7 <property name="minPoolSize" value="10"/> 8 <property name="maxPoolSize" value="100"/> 9 <property name="acquireIncrement" value="3"/> 10 <property name="acquireRetryAttempts" value="60"/> 11 <property name="acquireRetryDelay" value="1000"/> 12 <property name="autoCommitOnClose" value="false"/> 13 <property name="checkoutTimeout" value="0"/> 14 <property name="idleConnectionTestPeriod" value="120"/> 15 <property name="maxIdleTime" value="60"/> 16 <property name="testConnectionOnCheckin" value="false"/> 17 <property name="maxStatements" value="8"/> 18 <property name="maxStatementsPerConnection" value="5"/> 19 <property name="unreturnedConnectionTimeout" value="25"/> 20 </bean>
2、mybatis文件配置,配置SqlSessionFactoryBean类,扫描所有mapper文件(这里mapper后续会采用generator自动生成)

1 <!-- mybatis文件配置,配置SqlSessionFactoryBean类,扫描所有mapper文件 --> 2 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 3 <!-- 指定数据源 --> 4 <property name="dataSource" ref="dataSource"/> 5 <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/> 6 </bean>
3、spring与mybatis整合配置,配置org.mybatis.spring.mapper.MapperScannerConfigurer类,扫描所有dao

1 <!-- spring与mybatis整合配置,org.mybatis.spring.mapper.MapperScannerConfigurer类,扫描所有dao--> 2 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 3 <property name="basePackage" value="dao"/> 4 </bean>
4、配置事务管理器

1 <!-- 配置事务管理器 --> 2 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 3 <property name="dataSource" ref="dataSource"/> 4 </bean>
完整的spring-mybatis.xml代码如下:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 <!-- 配置数据源 --> 6 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 7 <property name="driverClass" value="com.mysql.jdbc.Driver"/> 8 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/> 9 <property name="user" value="root"/> 10 <property name="password" value="root"/> 11 <property name="minPoolSize" value="10"/> 12 <property name="maxPoolSize" value="100"/> 13 <property name="acquireIncrement" value="3"/> 14 <property name="acquireRetryAttempts" value="60"/> 15 <property name="acquireRetryDelay" value="1000"/> 16 <property name="autoCommitOnClose" value="false"/> 17 <property name="checkoutTimeout" value="0"/> 18 <property name="idleConnectionTestPeriod" value="120"/> 19 <property name="maxIdleTime" value="60"/> 20 <property name="testConnectionOnCheckin" value="false"/> 21 <property name="maxStatements" value="8"/> 22 <property name="maxStatementsPerConnection" value="5"/> 23 <property name="unreturnedConnectionTimeout" value="25"/> 24 </bean> 25 <!-- mybatis文件配置,配置SqlSessionFactoryBean类,扫描所有mapper文件 --> 26 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 27 <!-- 指定数据源 --> 28 <property name="dataSource" ref="dataSource"/> 29 <property name="mapperLocations" value="classpath:mapper/StudentMapper.xml"/> 30 </bean> 31 <!-- spring与mybatis整合配置,org.mybatis.spring.mapper.MapperScannerConfigurer类,扫描所有dao--> 32 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 33 <property name="basePackage" value="dao"/> 34 </bean> 35 <!-- 配置事务管理器 --> 36 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 37 <property name="dataSource" ref="dataSource"/> 38 </bean> 39 </beans>
5、添加spring支持(applicationContext.xml),并在spring支持里面将mybatis配置文件进行引入
a) 配置component所在的包,自动加载需要管理的Bean

<!-- 配置component所在的包,自动加载需要管理的Bean --> <context:component-scan base-package="service,dao"/>
b) 引入spring-mybatis.xml文件

<!-- 引入spring-mybatis.xml文件 --> <import resource="spring-mybatis.xml"/>
6、将spring的配置,即applicationContext.xml加载到web.xml文件中

1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:applicationContext.xml</param-value> 4 </context-param>
完整的web.xml文件代码如下:

1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns="http://java.sun.com/xml/ns/javaee" 6 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 7 version="3.0"> 8 <display-name>Archetype Created Web Application</display-name> 9 <welcome-file-list> 10 <welcome-file>/index.jsp</welcome-file> 11 </welcome-file-list> 12 <!-- Spring MVC配置 --> 13 <servlet> 14 <servlet-name>spring</servlet-name> 15 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 16 <!--Spring-servlet.xml config 17 <init-param> 18 <param-name>contextConfigLocation</param-name> 19 <param-value>classpath:spring-servlet.xml</param-value> 20 </init-param> --> 21 <!--若在WEB-INF文件夹下,也可以指定目录 22 <init-param> 23 <param-name>contextConfigLocation</param-name> 24 <param-value>/WEB-INF/spring-servlet.xml</param-value> 25 </init-param>--> 26 <!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法) --> 27 <load-on-startup>1</load-on-startup> 28 </servlet> 29 <servlet-mapping> 30 <servlet-name>spring</servlet-name> 31 <url-pattern>/</url-pattern> 32 </servlet-mapping> 33 <context-param> 34 <param-name>contextConfigLocation</param-name> 35 <param-value>classpath:applicationContext.xml</param-value> 36 </context-param> 37 <listener> 38 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 39 </listener> 40 </web-app>
六、创建Demo
1、在service包中创建StudentService接口,代码如下

1 package service; 2 3 import entity.Student; 4 5 public interface StudentService { 6 int deleteByPrimaryKey(Integer uid); 7 8 int insert(Student record); 9 10 int insertSelective(Student record); 11 12 Student selectByPrimaryKey(Integer uid); 13 14 int updateByPrimaryKeySelective(Student record); 15 16 int updateByPrimaryKey(Student record); 17 }
2、在service包中创建实现StudentService接口的StudentServiceImpl类,代码如下

1 package service; 2 3 import dao.StudentMapper; 4 import entity.Student; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Service; 7 8 @Service 9 public class StudentServiceImpl implements StudentService { 10 @Autowired 11 private StudentMapper studentMapper; 12 13 @Override 14 public int deleteByPrimaryKey(Integer uid) { 15 return studentMapper.deleteByPrimaryKey(uid); 16 } 17 18 @Override 19 public int insert(Student record) { 20 return studentMapper.insert(record); 21 } 22 23 @Override 24 public int insertSelective(Student record) { 25 return studentMapper.insertSelective(record); 26 } 27 28 @Override 29 public Student selectByPrimaryKey(Integer uid) { 30 return studentMapper.selectByPrimaryKey(uid); 31 } 32 33 @Override 34 public int updateByPrimaryKeySelective(Student record) { 35 return studentMapper.updateByPrimaryKeySelective(record); 36 } 37 38 @Override 39 public int updateByPrimaryKey(Student record) { 40 return studentMapper.updateByPrimaryKey(record); 41 } 42 }
3、在controller包中创建StudentController类,代码如下

1 package controller; 2 3 import com.alibaba.fastjson.JSON; 4 import entity.Student; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.RestController; 9 import service.StudentServiceImpl; 10 11 import javax.annotation.Resource; 12 13 @RestController 14 @RequestMapping("/api/Student") 15 public class StudentController { 16 @Resource 17 private StudentServiceImpl studentService; 18 19 @GetMapping() 20 public String Get() { 21 Student student = studentService.selectByPrimaryKey(1); 22 String jsonResult = JSON.toJSONString(student); 23 return jsonResult; 24 } 25 }
结果显示如下
从而一个简单的SSM demo就完成了。