springBoot2.0 配置 mybatis+mybatisPlus+redis

2023-11-06 08:20

本文主要是介绍springBoot2.0 配置 mybatis+mybatisPlus+redis,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.Idea新建springBoot项目

next到完成,然后修改使用自己的maven

等待下载包

二.pom.xml文件

<?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 http://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.1.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo2</artifactId><version>0.0.1-SNAPSHOT</version><name>demo2</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><!-- 配置环境变量 --><profiles><profile><id>dev</id><properties><profiles.active>dev</profiles.active></properties><!-- 默认环境 --><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>prod</id><properties><profiles.active>prod</profiles.active></properties></profile></profiles><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 阿里数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- mybatisPlus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.7.1</version></dependency><!-- mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

三.application配置文件

application.properties 修改为 application.yml

新增application-dev.yml测试环境文件和application-prod.yml生成环境文件

application.yml配置

#默认配置文件
spring:profiles:active: @profiles.active@#tomcat
server:port: 8080servlet:context-path: /demo2#mybatis
mybatis-plus:configuration:map-underscore-to-camel-case: truejdbc-type-for-null: nullauto-mapping-behavior: fullmapper-locations: classpath*:mapping/*.xmltype-aliases-package: com.sssr.assets.entity#日志
logging:level:com.example.demo2.dao: debugorg:springframework:boot:autoconfigure: ERROR
#日志文件输出路径
#  file:
#    assets.log

application-dev.yml配置

spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/assets?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=trueusername: rootpassword: 123456stat-view-servlet:url-pattern: /druid/*reset-enable: truelogin-username: druidlogin-password: druidweb-stat-filter:url-pattern: /*exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"#redisredis:database: 0host: localhostport: 6379timeout: 3000password:
jedis:#    链接池pool:
#       最大连接数(负值表示没有限制)max-active: 8
#       最大阻塞等待时间(负值表示没有限制)max-wait: 1
#       最大空闲链接max-idle: 8
#       最小空闲链接min-idle: 0

四.entity,dao,controller,service,config,mapping包

User.java 实体类

package com.example.demo2.entity;import lombok.Getter;
import lombok.Setter;import java.io.Serializable;/*** @author sssr* @version 1.0* @Description:* @date 2019/2/16*/
@Getter
@Setter
public class User implements Serializable {private Long id;private String username;private String password;}

UserDao.java

package com.example.demo2.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo2.entity.User;
import org.springframework.stereotype.Repository;import java.util.List;/*** @author sssr* @version 1.0* @Description:* @date 2019/2/16*/
@Repository
public interface UserDao extends BaseMapper<User> {/*** 用户列表* @return*/List<User> getList();
}

UserDao.xml

<?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.example.demo2.dao.UserDao"><resultMap id="userMap" type="com.example.demo2.entity.User"></resultMap><select id="getList" resultMap="userMap">SELECT u.* FROM user u</select>
</mapper>

UserService.java

package com.example.demo2.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo2.entity.User;import java.util.List;/*** @author sssr* @version 1.0* @Description:* @date 2019/2/16*/
public interface UserService extends IService<User> {List<User> getList();
}

UserServiceImpl.java

package com.example.demo2.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo2.dao.UserDao;
import com.example.demo2.entity.User;
import com.example.demo2.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;import java.util.List;/*** @author sssr* @version 1.0* @Description:* @date 2019/2/16*/
@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {@Autowiredprivate UserDao userDao;/** (non-Javadoc)* @value:   在redis中 保存缓存在以user命名的集合中* @key  :   user集合中的关键字,注意字符串要以单引号括住  '',变量前缀加#号,如#userId*/@Override@Cacheable(value="user",key="'userList'")public List<User> getList() {return userDao.getList();}
}

UserController.java

package com.example.demo2.controller;import com.example.demo2.entity.User;
import com.example.demo2.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author sssr* @version 1.0* @Description:* @date 2019/2/16*/
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> getUserList(){return userService.getList();}
}

 RedisConfig.java

package com.example.demo2.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;import java.time.Duration;/*** @author sssr* @version 1.0* @Description:* @date 2019/1/17*/
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {//缓存管理器
    @Beanpublic CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(1)); // 设置缓存有效期一小时return RedisCacheManager.builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory)).cacheDefaults(redisCacheConfiguration).build();}@Beanpublic RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory){StringRedisTemplate template = new StringRedisTemplate(factory);setSerializer(template);//设置序列化工具
        template.afterPropertiesSet();return template;}private void setSerializer(StringRedisTemplate template){@SuppressWarnings({ "rawtypes", "unchecked" })Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setValueSerializer(jackson2JsonRedisSerializer);}
}
Demo2Application.java
package com.sssr.assets;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableScheduling;/*** @author sssr* 配置redis缓存,允许缓存*@EnableScheduling*@EnableCaching*/
@SpringBootApplication
@EnableScheduling
@EnableCaching
@MapperScan({"com.example.demo2.dao","com.baomidou.mybatisplus.samples.quickstart.mapper"})
public class AssetsApplication {public static void main(String[] args) {SpringApplication.run(AssetsApplication.class, args);}}

 

最终结构

五.运行测试

 

转载于:https://www.cnblogs.com/qq1272850043/p/10388212.html

这篇关于springBoot2.0 配置 mybatis+mybatisPlus+redis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/awpgg12345/article/details/101756184
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/355516

相关文章

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

Logback在SpringBoot中的详细配置教程

《Logback在SpringBoot中的详细配置教程》SpringBoot默认会加载classpath下的logback-spring.xml(推荐)或logback.xml作为Logback的配置... 目录1. Logback 配置文件2. 基础配置示例3. 关键配置项说明Appender(日志输出器

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re