SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
•
后端
SSM整合
- 1.1 流程分析
- 1.2 整合配置
-
- 步骤1:创建Maven的web项目
- 步骤2:添加依赖
- 步骤3:创建项目包结构
- 步骤4:创建SpringConfig配置类
- 步骤5:创建JdbcConfig配置类
- 步骤6:创建MybatisConfig配置类
- 步骤7:创建jdbc.properties
- 步骤8:创建SpringMVC配置类
- 步骤9:创建Web项目入口配置类
1.1 流程分析
(1) 创建工程
- 创建一个Maven的web工程
- pom.xml添加SSM需要的依赖jar包
- 编写Web项目的入口配置类,实现AbstractAnnotationConfigDispatcherServletInitializer重写以下方法。
- getRootConfigClasses() :返回Spring的配置类->需要SpringConfig配置类。
- getServletConfigClasses() :返回SpringMVC的配置类->需要SpringMvcConfig配置类。
- getServletMappings() : 设置SpringMVC请求拦截路径规则。
- getServletFilters() :设置过滤器,解决POST请求中文乱码问题。
(2)SSM整合[重点是各个配置的编写]。
- SpringConfig
- 标识该类为配置类 @Configuration。
- 扫描Service所在的包 @ComponentScan。
- 在Service层要管理事务 @EnableTransactionManagement。
- 读取外部的properties配置文件 @PropertySource。
- 整合Mybatis需要引入Mybatis相关配置类 @Import。
- 第三方数据源配置类 JdbcConfig。
- 构建DataSource数据源,DruidDataSouroce,需要注入数据库连接四要素, @Bean @Value。
- 构建平台事务管理器,DataSourceTransactionManager,@Bean。
- Mybatis配置类 MybatisConfig
- 构建SqlSessionFactoryBean并设置别名扫描与数据源,@Bean。
- 构建MapperScannerConfigurer并设置DAO层的包扫描。
- 第三方数据源配置类 JdbcConfig。
- SpringMvcConfig
- 标识该类为配置类 @Configuration。
- 扫描Controller所在的包 @ComponentScan。
- 开启SpringMVC注解支持 @EnableWebMvc。
1.2 整合配置
掌握上述的知识点后,接下来,我们就可以按照上述的步骤一步步的来完成SSM的整合。
步骤1:创建Maven的web项目
可以使用Maven的骨架创建

步骤2:添加依赖
pom.xml添加SSM所需要的依赖jar包
4.0.0
com.itheima
springmvc_08_ssm
1.0-SNAPSHOT
war
org.springframework
spring-webmvc
5.2.10.RELEASE
org.springframework
spring-jdbc
5.2.10.RELEASE
org.springframework
spring-test
5.2.10.RELEASE
org.mybatis
mybatis
3.5.6
org.mybatis
mybatis-spring
1.3.0
mysql
mysql-connector-java
5.1.47
com.alibaba
druid
1.1.16
junit
junit
4.12
test
javax.servlet
javax.servlet-api
3.1.0
provided
com.fasterxml.jackson.core
jackson-databind
2.9.0
org.apache.tomcat.maven
tomcat7-maven-plugin
2.1
80
/
步骤3:创建项目包结构
- config目录存放的是相关的配置类。
- controller编写的是Controller类。
- dao存放的是Dao接口,因为使用的是Mapper接口代理方式,所以没有实现类包。
- service存的是Service接口,impl存放的是Service实现类。
- resources:存入的是配置文件,如Jdbc.properties。
- webapp:目录可以存放静态资源。
- test/java:存放的是测试类。
步骤4:创建SpringConfig配置类
@Configuration
@ComponentScan({"com.itheima.service"})
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}
步骤5:创建JdbcConfig配置类
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource){
DataSourceTransactionManager ds = new DataSourceTransactionManager();
ds.setDataSource(dataSource);
return ds;
}
}
步骤6:创建MybatisConfig配置类
public class MyBatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("com.itheima.domain");
return factoryBean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
步骤7:创建jdbc.properties
在resources下提供jdbc.properties,设置数据库连接四要素
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm_db jdbc.username=root jdbc.password=root
步骤8:创建SpringMVC配置类
@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}
步骤9:创建Web项目入口配置类
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
//加载Spring配置类
protected Class[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
//加载SpringMVC配置类
protected Class[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
//设置SpringMVC请求地址拦截规则
protected String[] getServletMappings() {
return new String[]{"/"};
}
//设置post请求中文乱码过滤器
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("utf-8");
return new Filter[]{filter};
}
}
至此SSM整合的环境就已经搭建好了。
后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/73083f20aa.html
