搭建SSM框架
前言 前几篇我的几个系列文章分别介绍了MyBatis、Spring、SpringMVC框架的基本入门以及一些常用知识点,既然框架各有优点,那么我们是否可以将这几个框架进行整合? 下面就开始手把手教你搭建SSM框架,在这之前我们先总结一下这三个框架 基本概念 MyBatisMyBatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
Spring Spring是一个开源的重量级的应用开发框架,其目的是用于简化企业级应用程序开发,降低开发者的开发难度Spring提供的IOC和AOP应用,可以将组建的耦合度降到最低(即解耦),便于系统日后的维护和升级
Spring为系统提供了一个整体的解决方案,开发者可以利用它自身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择利用哪种技术进行开发
SpringMVC
SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需中间层整合
SpringMVC提供了基于MVC(模型—视图—控制器)架构和用于开发灵活和松耦合的web应用程序的组件
开发环境搭建 创建一个基于maven的web工程- 点击File,新建Project项目
- 选中Maven,勾上Creater from archetype选项,按照图中数字顺序选中后点击Next按钮即可
- 依次填写groupid和artifactid后点击next即可
- 选中提前配置好的maven,点击next
- 输入项目名称Spring,点击Finish即可
- 这样就创建好了一个名称为SSM的maven web项目,结构如下图:
- 我们可以看到包创建好之后是灰色的,需要选中相应的文件夹右击Mark Directory as,选中相应的颜色即可
- 现在项目的结构就变成了如下样子:
整合Spring框架
- 在pom.xml文件中导入所需要的的jar包
<dependency> <groupId>junitgroupId> <artifactId>junitartifactId> <version>4.11version> <scope>testscope> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-coreartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-contextartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-testartifactId> <version>5.1.5.RELEASEversion> <scope>testscope> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-aopartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>aopalliancegroupId> <artifactId>aopallianceartifactId> <version>1.0version> dependency> <dependency> <groupId>org.aspectjgroupId> <artifactId>aspectjrtartifactId> <version>1.9.2version> dependency> <dependency> <groupId>org.aspectjgroupId> <artifactId>aspectjweaverartifactId> <version>1.9.2version> <scope>runtimescope> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-jdbcartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-txartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <version>1.18.8version> dependency>
整合SpringMVC框架
- 在pom.xml文件中导入所需要的的jar包
<dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-webartifactId> <version>5.1.5.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-webmvcartifactId> <version>5.1.5.RELEASEversion> dependency>
添加SpringMVC框架支持
在项目名SpringMVC上右击选择Add framework support
- 按照图中方框中的提示选中后点击ok按钮即可
添加SpringMVC支持后,我们会发现项目目录中多了两个文件,我又单独创建了一个views用来存放映射文件JSP等
配置SpringMVC核心控制器
- 在web.xml中配置SpringMVC的核心信息
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>springMVCservlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class> <init-param> <param-name>contextConfigLocationparam-name> <param-value>/WEB-INF/dispatcher-servlet.xmlparam-value> init-param> <load-on-startup>1load-on-startup> <async-supported>trueasync-supported> servlet> <servlet-mapping> <servlet-name>springMVCservlet-name> <url-pattern>/url-pattern> servlet-mapping> <context-param> <param-name>contextConfigLocationparam-name> <param-value>/WEB-INF/applicationContext.xmlparam-value> context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> listener>web-app>
配置SpringMVC乱码处理过滤器
<filter> <filter-name>CharacterEncodingFilterfilter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class> <init-param> <param-name>encodingparam-name> <param-value>utf-8param-value> init-param> filter> <filter-mapping> <filter-name>CharacterEncodingFilterfilter-name> <url-pattern>/*url-pattern> filter-mapping>
配置dispatcher-servlet.xml文件信息
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <mvc:default-servlet-handler/> <mvc:annotation-driven>mvc:annotation-driven> <context:component-scan base-package="com.cn.controller">context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> bean>beans>
测试SpringMVC框架
创建并编写HelloController类
@Controllerpublic class HelloController { /** * 这个注解用于:映射请求的资源路径(/hello)和当前方法(hello)的对应关系 * 当浏览器请求 /hello 路径时, 将会访问(执行)当前这个方法 */ @RequestMapping("/hello") public String hello() { System.out.println("hello springmvc..."); return "home"; }}
在WEB-INF/views/目录下创建home.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Titletitle>head><body><h1>hello springmvc~~~h1>body>html>
部署Tomcat和相关环境
在 Run 菜单项下找到 Edit Configurations
配置Tomcat环境
- 选择好本地的Tomcat并修改好名称
- 在Deployment页面下完成以下操作
在弹出框中选中SSM:war exploded后点击OK
启动Tomcat服务器,进行测试
成功在浏览器页面上显示出了页面中的数据内容
整合MyBtis框架
在之前的文章中我写过一篇关于MyBatis的快速入门教程,可以参考以下链接: MyBatis框架快速入门第一篇在pom.xml文件中导入所需要的的jar包
<dependency> <groupId>org.mybatisgroupId> <artifactId>mybatisartifactId> <version>3.4.4version> dependency> <dependency> <groupId>org.mybatisgroupId> <artifactId>mybatis-springartifactId> <version>1.3.2version> dependency> <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>8.0.16version> dependency>
在resources文件包下创建db.properties文件
database.driver=com.mysql.jdbc.Driverdatabase.url=jdbc:mysql://localhost:3306/db1database.username=erpuserdatabase.password=erp1234
之前我们在MyBatis快速入门教程里是在mybatis-config.xml文件中配置MyBatis的核心信息,现在我们要做SSM框架整合,可以将MyBatis的配置交给Spring去处理
配置applicationContext.xml文件信息
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:property-placeholder location="classpath:jdbc.properties">context:property-placeholder> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${db.driverClassName}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource">property> bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cn"/> bean>beans>
测试MyBatis框架
- 创建Student实体类,并使用lombok注解代替get、set、有参构造和无参构造等方法
@Data@AllArgsConstructor@NoArgsConstructorpublic class Student { private String id; private String name; private String birth; private String sex;}
创建StudentMapper接口类,并提供getStudentById方法
package com.cn.dao;import com.cn.pojo.Student;public interface StudentMapper { Student getStudentById(String id);}
创建StudentMapper.xml文件(实体类的映射文件)
<?xml version="1.0" encoding="utf-8" ?>/span> "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cn.dao.StudentMapper"> <select id="getStudentById" parameterType="string" resultType="com.cn.pojo.Student"> SELECT * from Student where id= #{id}; select>mapper>
创建并编写TestSSM类
/** * 测试SSM开发环境 */@Controllerpublic class TestSSM { @Autowired StudentMapper studentMapper; @RequestMapping("/testSSM") public void testSSM(){ Student student = studentMapper.getStudentById("01"); System.out.println(student); }}
- 输出结果
<build> <resources> <resource> <directory>src/main/javadirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> <filtering>truefiltering> resource> resources> build>
- 再次访问,输出结果
到这里这个简单的ssm框架就算搭建完成了,看起来过程很长,但实际操作起来应该是没有太大难度,细心一点就可以了
这一篇是在之前文章的基础上做了一个框架之间的整合,方便我们以后开发,大家对之前的文章感兴趣可以点击以下链接:
MyBatis框架快速入门第一篇
Spring框架快速入门第一篇
来喽 ! SpringMVC框架第一篇
下一篇我们就要开始学习SpringBoot框架了,其实它不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架,废话不多说,下一篇咱们就开始吧!
因为本人还是一枚正在路上的菜鸟,难免会有错误之处还望大家及时指正,可以加我微信私聊,如果对您有所帮助,文末别忘了点赞,再看噢~~~