{"id":19391205,"url":"https://github.com/micyo202/ssm","last_synced_at":"2026-03-02T07:03:05.650Z","repository":{"id":91464658,"uuid":"105347231","full_name":"micyo202/ssm","owner":"micyo202","description":"最新简单的springMVC+spring+mybatis（SSM）框架搭建教程","archived":false,"fork":false,"pushed_at":"2018-10-19T01:04:27.000Z","size":18,"stargazers_count":11,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-06T17:03:58.655Z","etag":null,"topics":["druid","jackson","maven","mybatis","spring","springmvc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micyo202.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-30T06:24:06.000Z","updated_at":"2025-05-19T00:29:46.000Z","dependencies_parsed_at":"2023-07-17T03:00:18.160Z","dependency_job_id":null,"html_url":"https://github.com/micyo202/ssm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/micyo202/ssm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micyo202%2Fssm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micyo202%2Fssm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micyo202%2Fssm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micyo202%2Fssm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micyo202","download_url":"https://codeload.github.com/micyo202/ssm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micyo202%2Fssm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["druid","jackson","maven","mybatis","spring","springmvc"],"created_at":"2024-11-10T10:25:31.520Z","updated_at":"2026-03-02T07:03:05.623Z","avatar_url":"https://github.com/micyo202.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 简介\n**最新使用Maven搭建springMVC+spring+mybatis（SSM）的详细过程Demo。**\u003cbr\u003e\n#### 另附上本人基于SSM搭建的高效便捷开发框架，详情参考[https://github.com/micyo202](https://github.com/micyo202/yan_demo)\n\n# 环境\n* MacOS Sierra / Windows 7\n* MySql 5.7\n* JDK 1.8\n* Eclipse 4.6.1\n* Maven 3.3.9\n* Jetty 9.4.6.v20170531 / Tomcat 9.0\n\n# 技术选型\n名称 | 描述 | 版本号 | 网址\n--- | --- | --- | ---\nSpring MVC| MVC框架 | 4.3.11.RELEASE  | [https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc](https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc)\nSpring Framework | 容器 | 4.3.10.RELEASE  | [http://projects.spring.io/spring-framework/](http://projects.spring.io/spring-framework/)\nMyBatis| ORM/持久层框架 | 3.4.5 | [http://www.mybatis.org/mybatis-3/zh/index.html](http://www.mybatis.org/mybatis-3/zh/index.html)\nAspectJ| 面向切面的框架 | 1.8.10 | [http://www.eclipse.org/aspectj/](http://www.eclipse.org/aspectj/)\nDruid| 数据库连接池 | 1.1.3 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid)\nJackson| json解析器 | 2.9.1 | [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)\nLogback| 日志组件 | 1.2.3 | [https://logback.qos.ch](https://logback.qos.ch)\nMaven| 项目构建管理 | 3.3.9 | [http://maven.apache.org/](http://maven.apache.org/)\n\n# 搭建步骤\n## 一、创建Maven项目\n##### 具体操作如下图\u003cbr\u003e\n![1.png](http://upload-images.jianshu.io/upload_images/8015461-c17ba12874caec50.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n![2.png](http://upload-images.jianshu.io/upload_images/8015461-63b386013cb776ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n![3.png](http://upload-images.jianshu.io/upload_images/8015461-58c0e09a3326a455.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n##### 新建好的项目会有报错提示，别着急，在项目上右键选择 Java EE Tools \u003e Generate Deployment Descriptor Stub\n![4.png](http://upload-images.jianshu.io/upload_images/8015461-96b62cc81ecc329d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n##### 接下来在项目上右键选择最后一项 **Properties \u003e Project Facets**\n![5.png](http://upload-images.jianshu.io/upload_images/8015461-2eb6c1851eb7e0e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n##### 到这里一个Maven的Web项目就创建好了\n\n## 二、在pom.xml中添加依赖包\n```xml\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\n\t\u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\n\t\u003cgroupId\u003ecom.frame\u003c/groupId\u003e\n\t\u003cartifactId\u003essm\u003c/artifactId\u003e\n\t\u003cversion\u003e0.0.1-SNAPSHOT\u003c/version\u003e\n\t\u003cpackaging\u003ewar\u003c/packaging\u003e\n\n\t\u003cproperties\u003e\n\t\t\u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\n\t\t\u003cspring.framework.version\u003e4.3.11.RELEASE\u003c/spring.framework.version\u003e\n\t\t\u003caspectj.version\u003e1.8.10\u003c/aspectj.version\u003e\n\t\t\u003cjackson.version\u003e2.9.1\u003c/jackson.version\u003e\n\t\t\u003clogback.version\u003e1.2.3\u003c/logback.version\u003e\n\t\u003c/properties\u003e\n\n\t\u003cdependencies\u003e\n\t\t\u003c!-- 添加 commons 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ecommons-fileupload\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ecommons-fileupload\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e1.3.3\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ecommons-io\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ecommons-io\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e2.5\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.apache.commons\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ecommons-lang3\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e3.6\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 spring 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003espring-aspects\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${spring.framework.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003espring-context\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${spring.framework.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003espring-jdbc\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${spring.framework.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003espring-webmvc\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${spring.framework.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003espring-context-support\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${spring.framework.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 aspectJ 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.aspectj\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003easpectjweaver\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${aspectj.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.aspectj\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003easpectjrt\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${aspectj.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 mybatis 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.mybatis\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003emybatis\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e3.4.5\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003eorg.mybatis\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003emybatis-spring\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e1.3.1\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 druid 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ecom.alibaba\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003edruid\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e1.1.3\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 mysql 驱动 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003emysql\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003emysql-connector-java\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e5.1.44\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 jackson 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ecom.fasterxml.jackson.core\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ejackson-databind\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${jackson.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 servlet 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ejavax.servlet\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ejavax.servlet-api\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e3.1.0\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 jstl 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ejavax.servlet\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003ejstl\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e1.2\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\t\u003c!-- 添加 logback 依赖包 --\u003e\n\t\t\u003cdependency\u003e\n\t\t\t\u003cgroupId\u003ech.qos.logback\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003elogback-classic\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e${logback.version}\u003c/version\u003e\n\t\t\u003c/dependency\u003e\n\n\t\u003c/dependencies\u003e\n\n\u003c/project\u003e\n```\n## 三、配置web.xml文件\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cweb-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns=\"http://xmlns.jcp.org/xml/ns/javaee\"\n\txsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd\"\n\tid=\"WebApp_ID\" version=\"3.1\"\u003e\n\t\u003cdisplay-name\u003essm\u003c/display-name\u003e\n\t\n\t\u003c!-- 过滤器解决中文乱码问题、强制编码 UTF-8 --\u003e\n\t\u003cfilter\u003e\n\t\t\u003cfilter-name\u003echaracterEncodingFilter\u003c/filter-name\u003e\n\t\t\u003cfilter-class\u003eorg.springframework.web.filter.CharacterEncodingFilter\u003c/filter-class\u003e\n\t\t\u003cinit-param\u003e\n\t\t\t\u003cparam-name\u003eencoding\u003c/param-name\u003e\n\t\t\t\u003cparam-value\u003eUTF-8\u003c/param-value\u003e\n\t\t\u003c/init-param\u003e\n\t\t\u003cinit-param\u003e\n\t\t\t\u003cparam-name\u003eforceRequestEncoding\u003c/param-name\u003e\n\t\t\t\u003cparam-value\u003etrue\u003c/param-value\u003e\n\t\t\u003c/init-param\u003e\n\t\u003c/filter\u003e\n\t\u003cfilter-mapping\u003e\n\t\t\u003cfilter-name\u003echaracterEncodingFilter\u003c/filter-name\u003e\n\t\t\u003curl-pattern\u003e/*\u003c/url-pattern\u003e\n\t\u003c/filter-mapping\u003e\n\n\t\u003c!-- 配置 springMVC 基本配置 --\u003e\n\t\u003cservlet\u003e\n\t\t\u003cservlet-name\u003espringMVC\u003c/servlet-name\u003e\n\t\t\u003cservlet-class\u003eorg.springframework.web.servlet.DispatcherServlet\u003c/servlet-class\u003e\n\t\t\u003cinit-param\u003e\n\t\t\t\u003cparam-name\u003econtextConfigLocation\u003c/param-name\u003e\n\t\t\t\u003cparam-value\u003eclasspath:spring-mvc.xml\u003c/param-value\u003e\n\t\t\u003c/init-param\u003e\n\t\t\u003cload-on-startup\u003e1\u003c/load-on-startup\u003e\n\t\u003c/servlet\u003e\n\t\u003cservlet-mapping\u003e\n\t\t\u003cservlet-name\u003espringMVC\u003c/servlet-name\u003e\n\t\t\u003curl-pattern\u003e/\u003c/url-pattern\u003e\n\t\u003c/servlet-mapping\u003e\n\t\n\t\u003c!-- 配置 spring 监听器 --\u003e\n\t\u003c!-- needed for ContextLoaderListener --\u003e\n\t\u003ccontext-param\u003e\n\t\t\u003cparam-name\u003econtextConfigLocation\u003c/param-name\u003e\n\t\t\u003cparam-value\u003eclasspath:applicationContext.xml\u003c/param-value\u003e\n\t\u003c/context-param\u003e\n\t\u003c!-- Bootstraps the root web application context before servlet initialization --\u003e\n\t\u003clistener\u003e\n\t\t\u003clistener-class\u003eorg.springframework.web.context.ContextLoaderListener\u003c/listener-class\u003e\n\t\u003c/listener\u003e\n\n\t\u003c!-- 配置欢迎页 --\u003e\n\t\u003cwelcome-file-list\u003e\n\t\t\u003cwelcome-file\u003eviews/index.jsp\u003c/welcome-file\u003e\n\t\u003c/welcome-file-list\u003e\n\n\u003c/web-app\u003e\n```\n## 四、在src/main/resources下创建spring配置文件\n##### 创建applicationContext.xml配置如下\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\" xmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd\"\u003e\n\n\t\u003c!-- 自动扫描指定目录，将控制器加载到bean --\u003e\n\t\u003ccontext:component-scan base-package=\"com.frame\" /\u003e\n\n\t\u003c!-- 配置 druid 数据源 --\u003e\n\t\u003cbean id=\"dataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\" init-method=\"init\" destroy-method=\"close\"\u003e\n\t\t\u003c!-- 基本属性 url、user、password、driverClass --\u003e\n\t\t\u003cproperty name=\"username\" value=\"root\" /\u003e\n\t\t\u003cproperty name=\"password\" value=\"root\" /\u003e\n\t\t\u003cproperty name=\"driverClassName\" value=\"com.mysql.jdbc.Driver\" /\u003e\n\t\t\u003cproperty name=\"url\" value=\"jdbc:mysql://192.168.0.200:3306/test?useUnicode=true\u0026amp;characterEncoding=utf8\u0026amp;useSSL=false\" /\u003e\n\t\u003c/bean\u003e\n\t\n\t\t\u003c!-- 配置 sessionFactory --\u003e\n\t\u003cbean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\"\u003e\n\t\t\u003cproperty name=\"dataSource\" ref=\"dataSource\" /\u003e\n\t\t\u003cproperty name=\"mapperLocations\"\u003e\n\t\t\t\u003clist\u003e\n\t\t\t\t\u003cvalue\u003eclasspath:com/frame/**/*Mapper.xml\u003c/value\u003e\n\t\t\t\t\u003cvalue\u003eclasspath:mybatis/**/*Mapper.xml\u003c/value\u003e\n\t\t\t\u003c/list\u003e\n\t\t\u003c/property\u003e\n\t\u003c/bean\u003e\n\t\n\t\u003c!-- 配置 sqlSessionTemplate 持久化模板 --\u003e\n\t\u003cbean id=\"sqlSessionTemplate\" class=\"org.mybatis.spring.SqlSessionTemplate\"\u003e\n\t\t\u003cconstructor-arg ref=\"sqlSessionFactory\" /\u003e\n\t\u003c/bean\u003e\n\n\t\u003c!-- 配置事物管理器 --\u003e\n\t\u003cbean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"\u003e\n\t\t\u003cproperty name=\"dataSource\" ref=\"dataSource\" /\u003e\n\t\u003c/bean\u003e\n\n\t\u003c!-- 配置事物传播行为 --\u003e\n\t\u003ctx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\"\u003e\n\t\t\u003ctx:attributes\u003e\n\t\t\t\u003ctx:method name=\"get*\" read-only=\"true\" /\u003e\n\t\t\t\u003ctx:method name=\"find*\" read-only=\"true\" /\u003e\n\t\t\t\u003ctx:method name=\"select*\" read-only=\"true\" /\u003e\n\t\t\t\u003ctx:method name=\"*\" propagation=\"REQUIRED\" /\u003e\n\t\t\u003c/tx:attributes\u003e\n\t\u003c/tx:advice\u003e\n\n\t\u003c!-- 配置事物切入点 --\u003e\n\t\u003caop:config\u003e\n\t\t\u003caop:pointcut expression=\"execution(* com.frame.service.*.*(..))\" id=\"pointCut\" /\u003e\n\t\t\u003caop:advisor advice-ref=\"txAdvice\" pointcut-ref=\"pointCut\" /\u003e\n\t\u003c/aop:config\u003e\n\n\t\u003c!-- 开始声明式事务（事物注解） --\u003e\n\t\u003ctx:annotation-driven transaction-manager=\"transactionManager\" /\u003e\n\t\n\u003c/beans\u003e\n```\n##### 创建spring-mvc.xml配置如下\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:context=\"http://www.springframework.org/schema/context\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd\"\u003e\n\t\t\n\t\u003c!-- 自动将控制器加载到bean --\u003e\n\t\u003ccontext:component-scan base-package=\"com.frame.controller\" /\u003e\n\t\n\t\u003c!-- 配置视图解析器 --\u003e\n\t\u003cbean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\"\u003e\n\t\t\u003cproperty name=\"prefix\" value=\"/views/\" /\u003e\n\t\t\u003cproperty name=\"suffix\" value=\".jsp\" /\u003e\n\t\t\u003c!-- 可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 --\u003e\n\t\t\u003cproperty name=\"viewClass\" value=\"org.springframework.web.servlet.view.JstlView\" /\u003e\n\t\u003c/bean\u003e\n\n\t\u003c!-- 返回json 需导入 jackson-annotations.jar，jackson-core.jar，jackson-databind.jar --\u003e\n\t\u003c!-- 通过处理器映射DefaultAnnotationHandlerMapping来开启支持@Controller注解 --\u003e\n\t\u003cbean class=\"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping\" /\u003e\n\t\u003c!-- 通过处理器适配器AnnotationMethodHandlerAdapter来开启支持@RequestMapping注解 --\u003e\n\t\u003cbean class=\"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter\"\u003e\n\t\t\u003cproperty name=\"messageConverters\"\u003e\n\t\t\t\u003clist\u003e\n\t\t\t\t\u003c!-- 配置返回字符串编码 --\u003e\n\t\t\t\t\u003cbean\n\t\t\t\t\tclass=\"org.springframework.http.converter.StringHttpMessageConverter\"\u003e\n\t\t\t\t\t\u003cproperty name=\"supportedMediaTypes\"\u003e\n\t\t\t\t\t\t\u003clist\u003e\n\t\t\t\t\t\t\t\u003cvalue\u003etext/html; charset=UTF-8\u003c/value\u003e\n\t\t\t\t\t\t\t\u003cvalue\u003eapplication/json;charset=UTF-8\u003c/value\u003e\n\t\t\t\t\t\t\u003c/list\u003e\n\t\t\t\t\t\u003c/property\u003e\n\t\t\t\t\u003c/bean\u003e\n\t\t\t\t\u003c!-- 配置 json 转换器 --\u003e\n\t\t\t\t\u003cbean class=\"org.springframework.http.converter.json.MappingJackson2HttpMessageConverter\"\u003e\n\t\t\t\t\t\u003cproperty name=\"supportedMediaTypes\"\u003e\n\t\t\t\t\t\t\u003clist\u003e\n\t\t\t\t\t\t\t\u003cvalue\u003etext/html; charset=UTF-8\u003c/value\u003e\n\t\t\t\t\t\t\t\u003cvalue\u003eapplication/json;charset=UTF-8\u003c/value\u003e\n\t\t\t\t\t\t\u003c/list\u003e\n\t\t\t\t\t\u003c/property\u003e\n\t\t\t\t\u003c/bean\u003e\n\t\t\t\u003c/list\u003e\n\t\t\u003c/property\u003e\n\t\u003c/bean\u003e\n\t\n\u003c/beans\u003e\n```\n## 五、在src/main/resources下创建mybatis/\\*\\*/\\*Mapper.xml模板\n##### 用于撰写mybatis执行sql的语句\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\"\u003e\n\u003cmapper namespace=\"com.frame.mapper.DemoMapper\"\u003e\n\t\n\t\u003cselect id=\"getTest\" resultType=\"java.util.Map\"\u003e\n\t\tSELECT * FROM TB_TEST\n\t\u003c/select\u003e\n\t\n\u003c/mapper\u003e\n```\n## 五、在src/main/java下创建com.frame.\\*测试类\n##### 创建service接口\n```java\npackage com.frame.service;\n\npublic interface DemoService {\n\tvoid test();\n}\n```\n##### 创建service业务层实现类\n```java\npackage com.frame.service.impl;\n\nimport org.mybatis.spring.SqlSessionTemplate;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport com.frame.service.DemoService;\n\n@Service(\"demoService\")\npublic class DemoServiceImpl implements DemoService {\n\n\t@Autowired\n\tprivate SqlSessionTemplate sqlSessionTemplate;\n\n\t// mybatis sql模板的命名空间\n\tprivate static final String NAMESPACE = \"com.frame.mapper.DemoMapper\";\n\n\t@Override\n\tpublic void test() {\n\t\tSystem.out.println(\"返回查询结果集 -\u003e \" + sqlSessionTemplate.selectList(NAMESPACE + \".getTest\")); // 查询结果集\n\t}\n}\n```\n##### 创建controller控制器\n```java\npackage com.frame.controller;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\n\nimport com.frame.service.DemoService;\n\n@Controller\npublic class DemoController {\n\n\t@Autowired\n\tprivate DemoService demoService;\n\n\t@RequestMapping(\"/hello\")\n\tpublic String hello() {\n\t\tSystem.out.println(\"执行hello控制器方法\");\n\t\t// 调用业务层执行查询操作\n\t\tdemoService.test();\n\t\treturn \"hello\";\n\t}\n}\n```\n## 六、在webapp下创建views/\\*.jsp页面\n##### 创建index.jsp\n```jsp\n\u003c%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\"\n\tpageEncoding=\"UTF-8\"%\u003e\n\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"\u003e\n\u003ctitle\u003eInsert title here\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\tThis is index page.\n\u003c/body\u003e\n\u003c/html\u003e\n```\n##### 创建hello.jsp\n```jsp\n\u003c%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\"\n\tpageEncoding=\"UTF-8\"%\u003e\n\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"\u003e\n\u003ctitle\u003eInsert title here\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\t\u003ch1\u003eHello World!\u003c/h1\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n## 七、部署项目并启动服务（Jetty/Tomcat）\n![6.png](http://upload-images.jianshu.io/upload_images/8015461-b0e716c6d3ca6449.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n##### 服务启动成功后输入地址[http://localhost:8888/ssm/hello](http://localhost:8888/ssm/hello)进行测试，页面将展示**Hello World！**字样，控制台(console)将输出如下信息\n```console\n执行hello控制器方法\n返回查询结果集 -\u003e [{ID=1ba6d11d2639401ebf63c00c5ae7c2a0, NAME=SSM, TYPE=FRAME}]\n```\n##### 到此整个框架最基本的搭建就完成了，接下来即可进入开发阶段，如果感觉不错请分享出去。\n#### 这里推荐本人自己基于SSM搭建的高效便捷开发框架，上手就能用，详情参考[https://github.com/micyo202](https://github.com/micyo202/yan_demo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicyo202%2Fssm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicyo202%2Fssm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicyo202%2Fssm/lists"}