首页 > 其他分享 >Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)

Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)

时间:2023-12-09 17:57:33浏览次数:41  
标签:解析器 Spring dao 视图 empDAO jsp emp empService public

学习视频:【编程不良人】2021年SpringBoot最新最全教程

第五章、JSP模板集成

5.1 引入JSP依赖

<!--引入jsp解析依赖-->
<!--C标签库-->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!--让内嵌tomcat具有解析jsp功能-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

5.2 配置jsp视图解析器

# 配置jsp视图解析器
spring:
  mvc:
    view:
      prefix: /
      suffix: .jsp

5.3 指定Jsp访问目录

在main创建webapp,然后创建index.jsp进行测试,在访问之前需要进行一个设置,否则springboot是找不到jsp页面的

  • 修改jsp无需重启应用

    server:
      port: 8989
      servlet:
        context-path: /springboot02
        jsp:
          init-parameters:
            development: true # 开启jsp页面开发模式 作用:无需重启应用,直接刷新网页
    

第六章、整合MyBatis框架

数据库访问框架:hibernate、jpa、mybatis【主流】

SpringBoot(微框架) = Spring(工厂) + SpringMVC(控制器)

SpringBoot整合MyBatis的思路基本上是和Spring整合MyBatis是一致的

6.1 引入依赖

<!--引入和MyBatis整合相关的依赖-->
<!--druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.19</version>
</dependency>
<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-spring-boot-stater-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

6.2 @MapperScan注解

作用:用在类上,扫描dao接口所在包,同时将所有dao接口交给工厂创建对象

用法

@SpringBootApplication
**@MapperScan({"com.baizhi.dao"})**  
public class Springboot03Application {
    public static void main(String[] args) {
        SpringApplication.run(Springboot03Application.class, args);
    }

}

6.3 整合mybatis相关配置

server:
  port: 8989
  servlet:
    context-path: /springboot03 #指定应用名称

**#整合mybatis相关配置**
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource #指定数据源
    driver-class-name: com.mysql.cj.jdbc.Driver # mysql8以上选择带cj的Driver
    url: jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath:com.baizhi.mapper/*.xml **#指定mapper配置文件位置**
  type-aliases-package: com.baizhi.entity **#指定实体类的别名** 默认别名:类名(首字母小写)

6.4 实体类、Service、DAO

  • 实体类

    public class Emp {
        private Integer id;
        private String name;
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date birthday;
        private Double salary;
    }
    
  • Service实现类

    @Service
    @Transactional
    public class EmpServiceImpl implements EmpService {
    
        @Autowired
        private EmpDAO empDAO;
    
        public EmpServiceImpl(EmpDAO empDAO) {
            this.empDAO = empDAO;
        }
    
        @Override
        public List<Emp> findAll() {
            return empDAO.findAll();
        }
    
        @Override
        public void save(Emp emp) {
            empDAO.save(emp);
            int i = 1/0; // 测试是否回滚
        }
    }
    
  • 控制器

    @RestController
    public class EmpController {
    
        @Autowired
        private EmpService empService;
    
        public EmpController(EmpService empService) {
            this.empService = empService;
        }
    
        @RequestMapping("findAll")
        public List<Emp> findAll() {
            return empService.findAll();
        }
        @RequestMapping("save")
        public void save(Emp emp) {
            empService.save(emp);
        }
    
  • Mapper文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.baizhi.dao.EmpDAO">
        <insert id="save">
            insert into emp values(#{id},#{name},#{birthday},#{salary})
        </insert>
    
        <select id="findAll" resultType="com.baizhi.entity.Emp">
            select id,`name`,birthday,salary from emp
        </select>
    </mapper>
    
  • 测试结果

    http://127.0.0.1:8989/springboot03/save?name=mike&birthday=2021/1/4&salary=23.01

    可以正常添加

    也可以正常查询

6.5 @Mapper 和 @MapperScan

@MapperScan是加在入口类,自动扫描包下面的dao接口一劳永逸【推荐】

@Mapper是直接加在dao接口,每个dao都要添加

标签:解析器,Spring,dao,视图,empDAO,jsp,emp,empService,public
From: https://www.cnblogs.com/eyewink/p/17891251.html

相关文章

  • Nameko,gRPC,Spring Cloud区别?
    他们都是基于RPC这个思想理念,弄出来的具体的框架。我咨询chatGPT4,他们在下面11个不同维度的区别是什么?Certainly,here'sacomparisonintheformofaMarkdowntable:特性NamekogRPCSpringCloud开发语言Python支持多种编程语言(如Python、Java、Go、C#)Jav......
  • 【编译原理】用C/C++编写一个LL(1)解析器
    任务描述本关任务:用C/C++编写一个LL(1)解析器相关知识为了完成本关任务,你需要掌握:LL文法C/C++编程语言基础C语言的基本结构知识LL(1)解析器在创建解析器之前,你应该创建一个下面文法的LL(1)分析表。C/C++本实训涉及函数、结构体,标准流输入输出,字符串等操作实验要求......
  • Spring Security 6.x 系列(10)—— SecurityConfigurer 配置器及其分支实现源码分析(二)
    一、前言在本系列文章:SpringSecurity6.x系列(4)——基于过滤器链的源码分析(一)中着重分析了SpringSecurity在SpringBoot自动配置、 DefaultSecurityFilterChain和FilterChainProxy 的构造过程。SpringSecurity6.x系列(7)——SecurityBuilder继承链源码分析中详细分析了......
  • springboot整合minio上传文件
    (springboot整合minio上传文件)前言上章讲了MinIo的下载安装及创建bucket方法,今天来讲一下在springboot中如何整合运用MinIo进行文件上传功能。springboot整合minio1.引入minio依赖<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.5......
  • Day3——揭秘Spring依赖注入和SpEL表达式
    【摘要】在本文中,我们深入探讨了Spring框架中的属性注入技术,包括setter注入、构造器注入、注解式属性注入,以及使用SpEL表达式进行属性注入。我们通过XML和注解两种方式,详细讲解了如何进行属性注入,并给出了完整的代码示例。无论你是Spring新手,还是有一定经验的开发者,本文都将帮助你......
  • 毕设选题|基于Springboot和Vue实现游戏攻略分享平台
     作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助收藏点赞不迷路 关注......
  • springboot开启定时不起作用
    1、主启动类开启@EnableScheduling 并且该配置所在的package要能被扫描到 packagecom.gccloud.dataroom.core.config;importcom.gccloud.dataroom.core.module.receive.service.IDataReceiveService;importorg.springframework.beans.factory.annotation.Autowired;......
  • 在线小说|基于SpringBoot和Vue实现小说在线阅读网
    作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享收藏点赞不迷路 关注作者有好处文末获得源码 项目编号:BS-PT-119一,环境介绍语言环境:Java: jdk1.8数据库:My......
  • Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建
    学习视频:【编程不良人】2021年SpringBoot最新最全教程3.5@SpringBootApplication详解这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)@Target:指定注解作用范围@Retention:指定注解什么时候生效重要注解@SpringBootConfiguration:自动配置Spring......
  • Java-Spring框架中用到的设计模式
    Java-Spring框架中用到的设计模式单例模式(Singleton)Spring中的Bean默认是单例的,容器中只存在一个实例。这有助于节省资源,提高性能。工厂模式(Factory)Spring使用工厂模式来创建和管理Bean。通过配置文件或注解,Spring容器可以根据需要创建相应的Bean对象。代理模......