SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
作者:mmseoamin日期:2024-01-18

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层的包扫描。
                  • SpringMvcConfig
                    • 标识该类为配置类 @Configuration。
                    • 扫描Controller所在的包 @ComponentScan。
                    • 开启SpringMVC注解支持 @EnableWebMvc。

                      1.2 整合配置

                      掌握上述的知识点后,接下来,我们就可以按照上述的步骤一步步的来完成SSM的整合。

                      步骤1:创建Maven的web项目

                      可以使用Maven的骨架创建

                      SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!,在这里插入图片描述,第1张

                      步骤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整合的环境就已经搭建好了。

                        后记

                        👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹