【sail】第三篇MybatisPlus的配置以及FreeMarker的配置

Mybatis-Plus使用freemarker模板快速生成代码 【代码】Mybatis-Plus使用freemarker模板快速生成代码。 阅读详情

-前面我们利用MybatisPlus的代码生成器很方便的的生成了项目中用到的通用类,这一篇我们把MybatisPlus配置一下,另外页面这一块集成freemarker模版引擎,我们也需要配置一下。

MybatisPlus的配置

首先还是在pom文件中引入j依赖

然后我们在项目的application.properties配置

# jdbc_config
spring.datasource.url=jdbc:mysql://localhost:3306/bubble?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#druid_config
spring.datasource.max-active: 20
spring.datasource.initial-size: 1
spring.datasource.min-idle: 3
spring.datasource.max-wait: 60000
spring.datasource.time-between-eviction-runs-millis: 60000
spring.datasource.min-evictable-idle-time-millis: 300000
spring.datasource.test-while-idle: true
spring.datasource.test-on-borrow: false
spring.datasource.test-on-return: false
spring.datasource.poolPreparedStatements: true

# mybatis_config
mybatis.mapper-locations=classpath:com/bubble/mapper/*Mapper.xml 
mybatis.typeAliasesPackage=com.bubble.entity

这里只是基本的配置项,我们还需创建一个mybatisplus的配置类

@Configuration
@EnableConfigurationProperties(MybatisProperties.class)
public class MybatisPlusConfig {

    @Autowired
    private Environment environment;

    @Autowired
    private DataSource dataSource;

    @Autowired
    private MybatisProperties properties;

    private RelaxedPropertyResolver propertyResolver;

    @Autowired
    private ResourceLoader resourceLoader = new DefaultResourceLoader();

    @Autowired(required = false)
    private Interceptor[] interceptors;

    @Autowired(required = false)
    private DatabaseIdProvider databaseIdProvider;

    /**
     * 分页插件
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor page = new PaginationInterceptor();
        page.setDialectType("mysql");
        return page;
    }

    /**
     * 配置DataSource
     * @return
     * @throws SQLException
     */
    @Bean
    public DataSource druidDataSource() throws SQLException {
        this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.datasource.");

        System.out.println("====================druid数据库连接池注入====================");
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(propertyResolver.getProperty("url"));
        datasource.setDriverClassName(propertyResolver.getProperty("driver-class-name"));
        datasource.setUsername(propertyResolver.getProperty("username"));
        datasource.setPassword(propertyResolver.getProperty("password"));
        datasource.setInitialSize(Integer.valueOf(propertyResolver.getProperty("initial-size")));
        datasource.setMinIdle(Integer.valueOf(propertyResolver.getProperty("min-idle")));
        datasource.setMaxWait(Long.valueOf(propertyResolver.getProperty("max-wait")));
        datasource.setMaxActive(Integer.valueOf(propertyResolver.getProperty("max-active")));
        datasource.setMinEvictableIdleTimeMillis(Long.valueOf(propertyResolver.getProperty("min-evictable-idle-time-millis")));
        try {
            datasource.setFilters(propertyResolver.getProperty("filters"));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return datasource;
    }

    /**
     * 这里全部使用mybatis-autoconfigure 已经自动加载的资源。不手动指定
     * 配置文件和mybatis-boot的配置文件同步
     * @return
     */
    @Bean
    public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {
        MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
        mybatisPlus.setDataSource(dataSource);
        mybatisPlus.setVfs(SpringBootVFS.class);
        if (StringUtils.hasText(this.properties.getConfigLocation())) {
            mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
        }
        mybatisPlus.setConfiguration(properties.getConfiguration());
        if (!ObjectUtils.isEmpty(this.interceptors)) {
            mybatisPlus.setPlugins(this.interceptors);
        }
        // MP 全局配置,更多内容进入类看注释
        GlobalConfiguration globalConfig = new GlobalConfiguration();
        globalConfig.setDbType(DBType.MYSQL.name());
        // ID 策略 AUTO->`0`("数据库ID自增") INPUT->`1`(用户输入ID") ID_WORKER->`2`("全局唯一ID") UUID->`3`("全局唯一ID")
        globalConfig.setIdType(3);
        mybatisPlus.setGlobalConfig(globalConfig);
        MybatisConfiguration mc = new MybatisConfiguration();
        mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
        mybatisPlus.setConfiguration(mc);
        if (this.databaseIdProvider != null) {
            mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);
        }
        if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
            mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
        }
        if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
            mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
        }
        if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
            mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());
        }
        return mybatisPlus;
    }

}

这是mybatisplus的全局配置类,接下来我们测试一下
在user表中新增一条数据

我们直接在controller里面写一个测试方法,直接注入我们利用代码生成器生成的servise以及通用方法,如下

我们到浏览器输入http://localhost:8080/user/info看看效果

FreeMarker的配置

前面我们取出数据都是直接json格式直接展示的,后边我们要用到后台的,以前都是使用JSP模版引擎的,久闻freemarker,今天尝试一下它的使用,freemarker支持jsp的标签,但是是使用自己的语法,在一些日期,金钱上的格式化处理更到位,特别的是对于宏定义的定义方便,简洁。之前使用过jsp的能很快的上手。

首先还是导入springboot中freemarker的依赖

    <!-- Spring Boot Freemarker 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>

然后我们也要对其进行配置一番在applicaton.properties

#FreeMarker FREEMARKER (FreeMarkerAutoConfiguration)
#设置是否允许HttpServletRequest属性重写(隐藏)控制器生成同名的模型属性
spring.freemarker.allow-request-override=false
#设置是否允许HttpSession属性重写(隐藏)控制器生成同名的模型属性。
spring.freemarker.allow-session-override=false
#启用模板缓存
spring.freemarker.cache=true
# 检查模板位置是否存在
spring.freemarker.check-template-location=true
#设置freemarker的contentType
spring.freemarker.content-type=text/html;charset=UTF-8
# 启用mvc视图解决方案
spring.freemarker.enabled=true
# 是否将所有请求属性添加到与模板合 并之前的模型中
spring.freemarker.expose-request-attributes=true
# 设置是否所有HttpSession属性应该与模板融合之前添加到模型
spring.freemarker.expose-session-attributes=true
# 设置是否公开一个由Spring的macro库使用RequestContext,在名为“springMacroRequestContext”。
spring.freemarker.expose-spring-macro-helpers=true
# 设置RequestContext对象(便于在模版中调用)
spring.freemarker.request-context-attribute=rc
# 是否开启模板文件的热部署
spring.freemarker.prefer-file-system-access=true
# 视图前缀
spring.freemarker.suffix=.ftl
# 模板路径配置
spring.freemarker.template-loader-path=classpath:/templates/
# 设置模版更新时间
spring.freemarker.settings.template_update_delay=0
# 设置模版默认编码
spring.freemarker.settings.default_encoding=UTF-8
# 设置数字格式
spring.freemarker.settings.number_format=0.##########
# 设置模版时间格式
spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss
spring.freemarker.settings.classic_compatible=true
# 设置模版异常处理器
spring.freemarker.settings.template_exception_handler=ignore
spring.freemarker.order=1

基本的注释已经标了,想更深入的了解 可以到看看官方文档。

现在我们写一个基本的页面

我们写一个controller

在浏览器上输入http://localhost:8080/user/hello

最后说明一下,在${userName !} 后面有一个感叹号,这感叹号判断userName值为空,则用空格代替,这也是freemarker比较方便的一点。
更多用法我们可以网上看看详细的介绍

利用Mybatisplus-generator+freemarker编写一个独属于你的springboot代码生成程序 在 Spring Boot 框架中,我们经常需要进行数据库开发,编写 CRUD 代码是一个重复且繁琐的工作。为了提高开发效率和代码质量,我们可以利用 Mybatisplus-generator+freemarker 自定义代码生成程序。 通过配置 Mybatisplus-generator,我们可以轻松地生成实体类、Mapper、Service、Controller 等常用的代码文件。同时,借助 freemarker 模板引擎,我们可以自定义代码文件的生成规则和规范,让生成的代码更加符合实际业务需求。 阅读详情

相关推荐

【Mybatis/Mybatis-plus】:代码生成器之模板引擎方式(freemarker)

前言 代码生成器模板 mybatis-plus + Freemarker模板引擎 导入相关依赖 <!-- 若要整合springboot,需要注意版本之间的问题 springboot版本对于mybatis-plus-boot-starter不兼容 ·--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter<

源僧 3473

Mybatis-Plus 3.5.2 + Freemake代码生成器

javaBean 生成 sql并插入数据库 代码生成器

qq_21344887的博客 1789

无人机飞控技术最详细解读

已剪辑自: https://zhuanlan.zhihu.com/p/64519280[导读]被称作是“飞行器的大脑”的飞控到底是什么?以前,搞无人机的十个人有八个是航空、气动、机械出身,更多考虑的是如何让飞机稳定飞起来、飞得更快、飞得更高。如今,随着芯片、人工智能、大数据技术的发展,无人机开始了智能化、终端化、集群化的趋势,大批自动化、机械电子、信息工程、微电子的专业人材投入到了无人机研发大潮中,几年的时间让无人机从远离人们视野的军事应用飞入了寻常百姓家、让门外汉可以短暂的学习也能稳定可靠的飞行娱乐。不可

qq_41854911的博客 1万+

mybatis-plus3.5.3.1、freemarker

mybatis-plus3.5.3.1、freemarker

Johnny_sunshine的博客 329

细说STM32单片机SPI-Flash芯片的FatFS移植及其应用实例详解

本文以开发板上的SPI-Flash芯片W25Q16为媒介详细介绍CubeMX中FatFS各个参数的意义和设置,分析生成的代码中FatFS各个文件的作用和关联,完成针对W25Q16的硬件访问层的移植。继续使用旺宝红龙开发板STM32F407ZGT6 KITV1.0。

wenchm的博客 1640

从CPRI到eCPRI:手把手教你用Wireshark分析基站前传协议帧结构

本文手把手教你使用Wireshark工具,深入解析从CPRI到eCPRI的基站前传协议帧结构。通过搭建分析环境、编写解析脚本,并对比两者在时延管理、帧格式及数据封装上的差异,为无线通信领域的研发与测试人员提供了一套实用的逆向分析与故障排查方法。

x8y9z0的博客 604

Mybatis-Plus入门系列(15)- MybatisPlus之代码生成器(3.5.0版本)

AutoGenerator AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。 也可以自定义生成模板,生成更丰富的后台代码,简化开发。 默认风格案例 (1)引入依赖 MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖: 添加 代码生成器 依赖,3.5.0不兼

记录知识、锤炼自我 4451

CoaXPress协议入门(1)---- CXP测试套件

CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的Camera Link协议,常见于科学相机、工业相机、医学图像、航空防务等场景。CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。CXP易于集成,可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格(推荐使用RG6),并且图像、控制通讯、触发、电源都可以使用同一条线缆。

素手挽剑 9512

后台数据库使用mybatisplus技术的,web应用开发之整合freemarker

1,添加该项目所使用到的所有依赖(自己想简化,可以试着去改动测试) <!--配置freemarker模板依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </.

进击的猪小Q 435

目标检测中的困难样本挖掘:YOLOv5训练效果提升30%的秘诀

本文深入探讨了目标检测中困难样本挖掘的关键技术,特别是如何通过在线困难样本挖掘(OHEM)策略显著提升YOLOv5模型的性能。文章详细解析了困难样本的分类、识别机制及实战配置,并提供了数据标注策略与增强技巧,最终实现模型性能提升30%的突破。

weixin_30379531的博客 401

【C语言】初识C语言(上篇)

初识C语言第一部分

StackFrame 4009

MybatisPlus代码生成器 + FreeMarker 模板

代码生成本身往往难以满足项目中的自定义需求,结合进行代码生成的个性化定制。

m0_69786632的博客 3034

8.5华为OD机试真题 新系统 - IPv4 等长子网划分与自动分配系统 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - IPv4 等长子网划分与自动分配系统 (Java/Py/C/C++/Js/Go)

算法大师! 526

SpringBoot整合Mybatis-Plus(含自动配置分析)

Mybatis-Plus是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,能提高开发效率。

Bulut0907 1663

SAP-ABAP:接口多继承与复合接口设计:复杂业务场景下的能力组合实现方案

本文介绍了ABAP中通过接口多继承与复合接口设计实现能力组合的方案。文章首先辨析了类实现多个接口与接口继承接口的核心概念,指出ABAP虽不支持类多继承,但可通过这两种机制灵活组合能力。随后详细讲解了类实现多个接口的语法规则与三种调用方式,并给出了五个基础能力接口的设计示例(日志记录、权限校验、数据导出、消息通知、格式转换)。作者通过对比单继承与接口多重实现的差异,强调后者在解耦和扩展性上的优势,为复杂业务场景下的能力组合提供了实用解决方案。

baidu_35680696的博客 246

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mybatisplus 使用mybatis中的配置、mapper配置文件

即在和application.properties同级目录下的mybatis目录中创建mybatis的配置文件mybatis-config.xml 其内容如下

jjw_zyfx的博客 9180

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MapScanner配置错误导致的一个错误

============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAut...

weixin_45339469的博客 3067

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

springboot2.x整合mybatisPlus和activiti6.0遇到的问题

依赖的Jar包详情: <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.0&lt...

小葫芦的博客 3313

Mybatis-Plus代码生成器,Freemarker模板引擎自定义模板文件

1、介绍 快速生成 Entity、Mapper、Mapper XML、Service、ServiceImpl、Controller、DTO等各个模块的代码,极大的提升了开发效率。 我是把模板从jar包中拿出来,再根据自己项目的需求去改模板,本文除了jar包中提供的六个模板,并自定义了dto模板,如果你有别的需要可以仿照dto生成的方式去实现。 2、效果 因为大家生成模板的需求不同,所以我这边demo提供的jar包中的模板。比如在我的项目中entity类统一继承BaseEntity,我把所有的公共

何大大的秘密基地 2603

mybatis-plus结合freemarker引擎(详细)

freemarker的性能比velocity来的高,来的可靠,freemarker比velocity更加稳定,在高并发的情况下,freemarker更适用。注意:程序运行后可自动生成提前设置好的controller,mapper,pojo,service,mapper.xml等等。程序员可根据自己的需求对生成的包进行修改,可在下述代码进行修改。4.freemarker和 velocity引擎的区别。2.创建CodeGenerator(代码生产主入口)

m0_74022176的博客 851

MyBatisPlus3--freemarker自定义模板

MyBatisPlus3–freemarker自定义模板 导包 <!--MyBatisPlus依赖模块--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> <

weixin_43671737的博客 7641

FreeMarker代码生成器和Mybatis-plus代码生成器之一

本文详解了使用FreeMarker模板引擎来为后端快速生成增删改查文件,以及相应的Vue文件

weixin_45440755的博客 1266

Mybatis-plus 创建自定义 FreeMarker 模板详细教程

网址:https://baomidou.com/reference/new-code-generator-configuration/#%E6%A8%A1%E6%9D%BF%E9%85%8D%E7%BD%AE-templateconfig(页面往最下面拉为自定义模板相关内容)首先,在项目的resources目录下创建一个名为templates的文件夹。在该文件夹中,创建一个新的 FreeMarker 模板文件。这是你的自定义控制器模板。在@Autowired// 其他控制器方法...

qq_42631788的博客 1995

Mybatis-Plus代码生成器-FreeMarker引擎

Mybatis-Plus代码生成器-FreeMarker引擎

宁好的博客 1374

mybatis-plus代码生成器,自定义模板【非常简单】

参考官网地址 https://baomidou.com/pages/981406/mybatis包 freemarker引擎模板 java代码 自定义模板 1 加依赖 Velocity引擎模板 test包 lombok包 糊涂工具包 Swagger依赖包 2 工具类 TODO是大家要改的,如果有特殊需求,可以自定义修改 3 模板 entity.java.vm mapper.java.vm mapper.xml.vm service.java.vm serviceImpl.java.vm controller

web15085599741的博客 1411

FreeMarker代码生成器和Mybatis-plus代码生成器之二

代码生成需要模板,有官方的模板,添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足要求,可以采用自定义模板引擎。

weixin_45440755的博客 397
上一篇: 【Sail】第二篇热部署和代码生成
下一篇: shiro权限不生效原因分析
bubble21
博客等级 码龄9年 33粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值