IT评测·应用市场-qidao123.com技术社区

标题: SSM(SpringMVC+spring+mybatis)整合的步骤以及相关依赖 [打印本页]

作者: 道家人    时间: 5 天前
标题: SSM(SpringMVC+spring+mybatis)整合的步骤以及相关依赖
目录
(一)导入SSM框架相关的依赖
①创建一个新的web工程(idea2023版)
②思考三者之间的联系,回忆依赖
③在pom.xml文件中引入依赖坐标
(二)使用注解开辟,编写Spring的设置类(代替applicationContext.xml文件)
(三)编写jdbc.properties文件
(四)编写JdbcConfig设置类
(五)编写Mybatis的设置类
(六)编写SpringMVC相关的设置类
①编写Servlet的设置类,使用注解开辟Servlet
②编写SpringMVC设置类


(一)导入SSM框架相关的依赖

   ①创建一个新的web工程(idea2023版)

  

  
  

  
  设置maven
  

    ②思考三者之间的联系,回忆依赖

         须要的依赖是与Spring、SpringMVC、Mybatis(包含JDBC和数据库毗连相关的依赖)相关,这样我们就可以做一个遐想,思路更加清晰
      ③在pom.xml文件中引入依赖坐标

  1. <dependencies>
  2.     <!-- Spring Web MVC 依赖,用于构建Web应用程序 -->
  3.     <dependency>
  4.       <groupId>org.springframework</groupId>
  5.       <artifactId>spring-webmvc</artifactId>
  6.       <version>5.3.14</version>
  7.     </dependency>
  8.     <!-- Spring JDBC 依赖,用于简化JDBC操作 -->
  9.     <dependency>
  10.       <groupId>org.springframework</groupId>
  11.       <artifactId>spring-jdbc</artifactId>
  12.       <version>5.3.14</version>
  13.     </dependency>
  14.     <!-- Alibaba Druid 依赖,用于数据库连接池 -->
  15.     <dependency>
  16.       <groupId>com.alibaba</groupId>
  17.       <artifactId>druid</artifactId>
  18.       <version>1.2.6</version>
  19.     </dependency>
  20.     <!-- Spring Test 依赖,用于单元测试 -->
  21.     <dependency>
  22.       <groupId>org.springframework</groupId>
  23.       <artifactId>spring-test</artifactId>
  24.       <version>5.3.14</version>
  25.       <scope>test</scope>
  26.     </dependency>
  27.     <!-- MyBatis 依赖,用于ORM操作 -->
  28.     <dependency>
  29.       <groupId>org.mybatis</groupId>
  30.       <artifactId>mybatis</artifactId>
  31.       <version>3.5.8</version>
  32.     </dependency>
  33.     <!-- MyBatis-Spring 依赖,用于整合MyBatis和Spring -->
  34.     <dependency>
  35.       <groupId>org.mybatis</groupId>
  36.       <artifactId>mybatis-spring</artifactId>
  37.       <version>2.0.6</version>
  38.     </dependency>
  39.     <!-- MySQL 连接器依赖,用于连接MySQL数据库 -->
  40.     <dependency>
  41.       <groupId>mysql</groupId>
  42.       <artifactId>mysql-connector-java</artifactId>
  43.       <version>8.0.28</version>
  44.     </dependency>
  45.     <!-- Servlet API 依赖,用于Servlet编程,由Servlet容器提供 -->
  46.     <dependency>
  47.       <groupId>javax.servlet</groupId>
  48.       <artifactId>javax.servlet-api</artifactId>
  49.       <version>3.1.0</version>
  50.       <scope>provided</scope>
  51.     </dependency>
  52.     <!-- Jackson Databind 依赖,用于JSON处理 -->
  53.     <dependency>
  54.       <groupId>com.fasterxml.jackson.core</groupId>
  55.       <artifactId>jackson-databind</artifactId>
  56.       <version>2.9.0</version>
  57.     </dependency>
  58.     <!-- MyBatis-Spring整合 -->
  59.     <dependency>
  60.       <groupId>org.mybatis.spring.boot</groupId>
  61.       <artifactId>mybatis-spring-boot-starter</artifactId>
  62.       <version>2.2.0</version>
  63.     </dependency>
  64.     <dependency>
  65.       <groupId>junit</groupId>
  66.       <artifactId>junit</artifactId>
  67.       <version>3.8.1</version>
  68.       <scope>test</scope>
  69.     </dependency>
  70.     <!--代码生成器-->
  71.     <dependency>
  72.       <groupId>org.projectlombok</groupId>
  73.       <artifactId>lombok</artifactId>
  74.       <version>1.18.28</version>
  75.     </dependency>
  76.   </dependencies>
  77. <build>
  78.     <plugins>
  79.       <!--配置tomcat插件-->
  80.       <plugin>
  81.         <groupId>org.apache.tomcat.maven</groupId>
  82.         <artifactId>tomcat7-maven-plugin</artifactId>
  83.         <version>2.1</version>
  84.         <configuration>
  85.           <port>80</port>
  86.           <path>/</path>
  87.         </configuration>
  88.       </plugin>
  89.     </plugins>
  90.   </build>
复制代码
   lombok可用于生成实体类的get和set方法,这样在类的上方打上@Setter和@Getter注解就可以为属性实现get和set方法,注意:万万不可导错包,应为lombok.getter
  (二)使用注解开辟,编写Spring的设置类(代替applicationContext.xml文件)

      
  1. import org.springframework.context.annotation.ComponentScan;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.context.annotation.Import;
  4. import org.springframework.context.annotation.PropertySource;
  5. /**
  6. * Spring配置类,用于定义Spring应用上下文的配置
  7. * 该类使用多个注解来实现不同的配置功能
  8. */
  9. @Configuration
  10. // 指定Spring在启动时自动扫描的包路径,以便进行组件扫描和自动装配
  11. @ComponentScan("com.xxx.service")
  12. // 指定配置文件的位置,此处为JDBC的属性配置文件
  13. @PropertySource("classpath:jdbc.properties")
  14. // 导入其他配置类,以便将MyBatis和JDBC的配置整合到当前配置中
  15. @Import({MybatisConfig.class, JdbcConfig.class})
  16. public class SpringConfig {
  17. }
复制代码
(三)编写jdbc.properties文件

   数据库毗连所须要的四个参数:
  
   
  1. jdbc.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
  2. jdbc.driver=com.mysql.jdbc.Driver
  3. jdbc.username=root
  4. jdbc.password=123456
复制代码
(四)编写JdbcConfig设置类

      
  1. import com.alibaba.druid.pool.DruidDataSource;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.context.annotation.Bean;
  4. public class JdbcConfig {
  5.     @Value("${jdbc.driver}")
  6.     private String driver;
  7.     @Value("${jdbc.url}")
  8.     private String url;
  9.     @Value("${jdbc.username}")
  10.     private String username;
  11.     @Value("${jdbc.password}")
  12.     private String password;
  13.     @Bean
  14.     public DruidDataSource dataSource(){
  15.         DruidDataSource druidDataSource = new DruidDataSource();
  16.         druidDataSource.setDriverClassName(driver);
  17.         druidDataSource.setUrl(url);
  18.         druidDataSource.setUsername(username);
  19.         druidDataSource.setPassword(password);
  20.         return druidDataSource;
  21.     }
  22. }
复制代码
(五)编写Mybatis的设置类

      
  1. import org.mybatis.spring.SqlSessionFactoryBean;
  2. import org.mybatis.spring.mapper.MapperScannerConfigurer;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  5. import javax.sql.DataSource;
  6. public class MybatisConfig {
  7.     @Bean
  8.     public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws Exception {
  9.         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
  10.         sqlSessionFactoryBean.setDataSource(dataSource);
  11.         //扫描mapper映射文件
  12.         sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
  13.         // 开启驼峰命名和下划线命名的自动转换
  14.         sqlSessionFactoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
  15.         sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.pojo");
  16.         return sqlSessionFactoryBean;
  17.     }
  18.     @Bean
  19.     public MapperScannerConfigurer mapperScannerConfigurer(){
  20.         MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
  21.         mapperScannerConfigurer.setBasePackage("com.xxx.mapper");
  22.         return mapperScannerConfigurer;
  23.     }
  24. }
复制代码
(六)编写SpringMVC相关的设置类

①编写Servlet的设置类,使用注解开辟Servlet

               在程序启动会先去加载web.xml,但是现在用Servlet设置类替换了web.xml,所以程序会首先加载设置类,程序在加载这个类的过程中,会一同加载Spring的设置类以及SpringMvc的设置类
  1. import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  2. /**
  3. * ServletReplaceConfig 类继承自 AbstractAnnotationConfigDispatcherServletInitializer,
  4. * 用于配置 Spring 的 DispatcherServlet 初始化参数.
  5. * 该类主要用于定义根配置类和Servlet配置类,以及映射Servlet到特定的请求路径.
  6. */
  7. public class ServletReplaceConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
  8.     /**
  9.      * 获取根配置类.
  10.      * 这些配置类通常包含全局的配置信息,比如数据库连接池配置、服务配置等.
  11.      *
  12.      * @return Class<?>[] 返回一个包含根配置类的数组.
  13.      */
  14.     @Override
  15.     protected Class<?>[] getRootConfigClasses() {
  16.         // 返回包含SpringConfig配置类的数组
  17.         return new Class[]{SpringConfig.class};
  18.     }
  19.     /**
  20.      * 获取Servlet配置类.
  21.      * 这些配置类通常包含Web相关的配置信息,比如视图解析器配置、静态资源处理等.
  22.      *
  23.      * @return Class<?>[] 返回一个包含Servlet配置类的数组.
  24.      */
  25.     @Override
  26.     protected Class<?>[] getServletConfigClasses() {
  27.         // 返回包含SpringMvcConfig配置类的数组
  28.         return new Class[]{SpringMvcConfig.class};
  29.     }
  30.     /**
  31.      * 获取Servlet的映射路径.
  32.      * 这里定义了DispatcherServlet处理的请求路径,"/"表示处理所有路径的请求.
  33.      *
  34.      * @return String[] 返回一个包含Servlet映射路径的数组.
  35.      */
  36.     @Override
  37.     protected String[] getServletMappings() {
  38.         // 返回包含根路径映射的数组,意味着拦截所有请求
  39.         return new String[]{"/"};
  40.     }
  41. }
复制代码
②编写SpringMVC设置类

      
  1. import org.springframework.context.annotation.ComponentScan;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  4. /**
  5. * Spring MVC配置类
  6. * 该类使用@Configuration注解标记为一个配置类,替代XML配置文件
  7. * 通过@ComponentScan注解指定Spring组件扫描的包路径,自动检测并注册为Bean
  8. * 使用@EnableWebMvc注解启用Spring MVC的配置支持
  9. */
  10. @Configuration
  11. @ComponentScan({"com.minyudie.controller", "com.minyudie.config"})
  12. @EnableWebMvc
  13. public class SpringMvcConfig {
  14.     // 类定义结束
  15. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4