SSM整合SpringBoot方式

本文档详细记录了SSM框架与SpringBoot的整合步骤,包括整合所需依赖、配置类方式的SSM整合、重要注解介绍、MybatisMapper的使用及通用代码生成器的配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSM框架整合以及知识整理笔记–boot

一、整合所需依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
	</parent>

    <groupId>cn.zzcfirst</groupId>
    <artifactId>test-1</artifactId>

	<version>0.0.1</version>

    <properties>
        <java.version>1.8</java.version>
	</properties>

	<dependencies>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.22</version>
        </dependency>
    
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
            <scope>runtime</scope>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

	</dependencies>

    <build>
        <plugins>
    
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
    
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.21</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

	</build>
</project>

二、SSM的整合(配置类方式)

1、创建Web配置类加注解(若需要配置需要的内容例如拦截器)
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
    }
}
2、创建其他配置类(如安全配置类等)
3、在启动类上添加扫描Mapper接口的注解
@SpringBootApplication
@MapperScan("cn.zzcfirst.test1.dao")
public class Test1Application {
    public static void main(String[] args) {
        SpringApplication.run(Test1Application.class, args);
    }
}
4、编写配置文件
server:
  port: 8889

spring:
  application:
    name: test1
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/test?nullCatalogMeansCurrent=true&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
    username: root
    password: 552310
	driver-class-name: com.mysql.cj.jdbc.Driver

logging:
  level:
    cn.zzcfirst: debug

mybatis:
  type-aliases-package: cn.zzcfirst.test1.domain.entity
  configuration:
    map-underscore-to-camel-case: true

三、重要注解参照

基本配置类(通用注解)
注解名称作用
@Configuration指定标明的类为配置类
@ComponentScan(basePackages={“cn.zzcfirst.mapper”})将指定包中的组件添加到容器中
@MapperScan(basePackages = {“cn.zzcfirst.mapper”})将指定包dao层Mapper接口添加到容器中
@Bean声明方法为创建bean的方法
@Scope(value=“single”)指定bean的作用范围
@Import(DaoConfig.class)导入另一个配置类
特殊配置类
注解名称作用
@EnableWebMvc开启自定义WebMvc配置 MVC配置类
@EnableTransactionManagement开启声明式事务支持 事务配置类
@EnableAspectJAutoProxy开启Aop代理 AOP配置类
@EnableWebSecurity1、加载了WebSecurityConfiguration配置类, 配置安全认证策略。
2、加载了AuthenticationConfiguration, 配置了认证信息。Security配置类
@EnableWebMvcSecurity开启MVC程序认证 Security配置类
@EnableJpaRepositories(value = “packagename”)指定包中的接口是Repository接口 SpringBoot完成自动配置不需要此注解 JPA配置类
SpringWebMvc注解
注解名称作用
@RestController声明该类是一个RestController组件(ResponseBody)
@Controller声明该类是一个普通的Controller(返回值会经过视图解析器)
@RequestMapping("/path")声明在方法上面标明访问路径
@GetMapping("/")
@PostMapping("/")
@PutMapping("/")
@DeleteMapping("/")
声明在方法上表明访问路径和指定的访问方式
@RequestHeader(“key”)获取指定key对应的请求头信息
@CookieValue(“key”)获取指定key值对应的value值
@RequestParam(“valuename”)获取接收的对应valuename的参数值
@PathVariable(“valuename”)获取指定路径上{valuename}对应的参数值
@ResponseBody将返回的值变为实体(json串)或其他
@RequestBody将传入的json串等变为java实体类
Service层组件注解
注解名称作用
@Service服务层组件注解
@Transactional开启声明式事务的注解
Dao层组件注解
注解名称作用
@Mapper声明该组件是一个dao层接口
@Repository声明该组件是一个dao层组件
AOP相关注解
注解名称作用
@Component声明该类是一个组件
@Aspect声明该类是一个切面类
@Pointcut(“execution(*.TestController.show(…))”)声明该方法是一个切面方法
@Before(value = “method()”)前置通知 获取传入参数方法如下图
@After(value = “method()”)后置通知
@AfterReturning(value = “method()”)返回通知
@AfterThrowing(value = “method()”)异常通知
@Around环绕通知
SpringSecurity注解
注解名称作用
@AuthenticationPrincipal在Controller方法上添加注解@AuthenticationPrincipal User user即可自动注入用户相关信息。

四、MybatisMapper的使用

添加依赖生成实体类即可 SpringBoot会完成自动配置

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.1.5</version>
</dependency>

五、MybatisMapper通用代码生成器的使用

1、加依赖(Maven插件依赖)

在plugins标签下面添加

org.mybatis.generator和maven-compiler-plugin

<plugins>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
      </plugin>

      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.6</version>

        <configuration>
          <configurationFile>
            ${basedir}/src/main/resources/generator/generatorConfig.xml
          </configurationFile>
          <overwrite>true</overwrite>
          <verbose>true</verbose>
        </configuration>

        <dependencies>

          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
          </dependency>

          <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
          </dependency>

        </dependencies>
        
      </plugin>

</plugins>
2、在指定文件目录下创建插件配置文件

在这里插入图片描述
配置文件内容如下

<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
<properties resource="generator/config.properties"/>

    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
            <property name="caseSensitive" value="true"/>
        </plugin>

        <jdbcConnection driverClass="${jdbc.driverClass}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.user}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <javaModelGenerator targetPackage="cn.zzcfirst.domain.entity"
                            targetProject="src/main/java"/>

        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src/main/resources"/>

        <javaClientGenerator targetPackage="cn.zzcfirst.dao"
                             targetProject="src/main/java"
                             type="XMLMAPPER"/>

        <table tableName="${tableName}">
            <generatedKey column="id" sqlStatement="JDBC"/>
        </table>
    </context>
</generatorConfiguration>

相关属性说明

<properties resource="generator/config.properties"/>
指定了属性文件位置
<jdbcConnection driverClass="${jdbc.driverClass}"
                connectionURL="${jdbc.url}"
                userId="${jdbc.user}"
                password="${jdbc.password}">
</jdbcConnection>
配置JDBC连接属性
<javaModelGenerator targetPackage="cn.zzcfirst.domain.entity"
                    targetProject="src/main/java"/>
指定实体类的位置(所在包)
<sqlMapGenerator targetPackage="mapper"
                 targetProject="src/main/resources"/>
指定sql映射文件生成位置
<javaClientGenerator targetPackage="cn.zzcfirst.dao"
                     targetProject="src/main/java"
                     type="XMLMAPPER"/>
指定mapper接口生成的位置
<table tableName="${tableName}">
    <generatedKey column="id" sqlStatement="JDBC"/>
</table>
指定对应的表名 

对应属性文件

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_oasys?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
jdbc.user=root
jdbc.password=552310

tableName=Emp
3、启动Maven插件即可

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值