• SpringBoot 整合ssm框架(入门)


    一、整合Junit

    1.pom引入依赖

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.创建测试类目录
    在这里插入图片描述

    @RunWith(SpringRunner.class)
    @SpringBootTest  // 加载 HelloApplication 启动类,初始化环境
    public class QuickTest {
    
        @Autowired
        private User user;
    
        @Test
        public void test01() throws Exception {
            System.out.println(user);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、整合SpringMVC静态资源

    现在,我们的项目是一个jar工程,那么就没有webapp

    springboot启动时,加载org.springframework.boot.autoconfigure.web.ResourceProperties资源属性类

    在这里插入图片描述

    三、拦截器配置

    1.自定义一个springMVC拦截器类,实现 HandlerInterceptor 接口

    @Component
    public class LoginInterceptor implements HandlerInterceptor {
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
            System.out.println("拦截了请求...");
            return false;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.自定义一个springMVC的配置类,实现WebMvcConfigurer接口

    @Configuration // 自定义配置类,添加拦截器
    public class WebConfig implements WebMvcConfigurer {
    
        @Autowired
        private LoginInterceptor loginInterceptor;
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(loginInterceptor)
                    .addPathPatterns("/**") // 指定拦截路径
                    .excludePathPatterns("/a1.png"); // 放行某个资源
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    四、整合jdbc和事务

    spring中的jdbc连接和事务是配置中的重要一环,只要找到SpringBoot提供的启动器即可
    1.pom引入

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-jdbcartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4

    2.至于事务,SpringBoot中通过注解来控制。就是我们熟知的@Transactional

    @Service
    public class UserService {
    
        public User queryById(Long id){
            // 开始查询
            return new User();
        }
    
        @Transactional
        public void deleteById(Long id){
            // 开始删除
            System.out.println("删除了: " + id);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    五、整合mybatis

    1.连接池

    其实,在刚才引入jdbc启动器的时候,SpringBoot已经自动帮我们引入了一个连接池
    因此,我们只需要指定连接池参数即可:
    yml配置中写:

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/xxx
        username: root
        password: root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    引入pom依赖:

    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.47version>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
        <version>1.1.15version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2.mybatis

    1.pom引入依赖

    
    <dependency>
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
        <version>2.1.1version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.java写一个方法

    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping("/{id}")
        public User findById(@PathVariable("id") Long id) {
           return userService.findById(id);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    另外,Mapper接口的位置在application.yml中并不能配置,Mapper接口的扫描有两种实现方式:

    ①给每一个Mapper接口添加@Mapper注解,由Spring来扫描这些注解,完成Mapper的动态代理。

    @Mapper
    public interface UserMapper {
    }
    
    • 1
    • 2
    • 3

    ②在启动类上添加扫描包注解:

    @SpringBootApplication
    @EnableTransactionManagement //开启注解事
    @MapperScan("cn.xxxx.mapper")
    public class Application {
        public static void main(String[] args) {
            // 启动代码
            SpringApplication.run(Application.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这种方式的好处是,不用给每一个Mapper都添加注解。

  • 相关阅读:
    选择合适的外贸公司邮箱注册服务提供商
    配置Raspberry自动连接WIFI,在无法查看路由器的校园网情况下使用自己电脑热点
    ZISUOJ 数据结构--队列及其应用
    Tomcat调优【精简版】
    网络基础选择题
    第7章 - 多无人机系统的协同控制 --> 实验验证
    怎么让重要文件自动备份到OneDrive?
    SAP Spartacus 和 CDC 集成的 HTTP 请求明细
    ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法
    详解C#委托与事件
  • 原文地址:https://blog.csdn.net/q290994/article/details/126024342