SpringBoot整合freemaker、thymeleaf和一些设置

SpringBoot 整合 freemaker xian相关知识介绍:

1.SpringBoot 整合 freemaker
    <1>在application.properties中,加入Spring的配置信息
        # 设定ftl静态资源路径
        spring.freemarker.template-loader-path=classpath:/templates
        # 关闭缓存 及时刷新的  上线生产环境需要改为true
        spring.freemarker.cache=false
        spring.freemarker.charset=UTF-8
        spring.freemarker.check-template-location=true
        spring.freemarker.content-type=text/html
        spring.freemarker.expose-request-attributes=true
        spring.freemarker.expose-session-attributes=true
        spring.freemarker.request-context-attribute=request
        spring.freemarker.suffix=.ftl
        
    <2>编写Resource.properties
        com.hooc.opensource.name=hooc
        com.hooc.opensource.website=www.hooc.com
        com.hooc.opensource.language=java
        
    <3>在resource目录下的templates下创建文件夹freemaker/center/center.ftl 和 templates/index.ftl
        创建完成过后,编辑这2个文件
        center.ftl
        <!DOCTYPE html>
        <html>
        <head lang="en">
            <meta charset="UTF-8" />
            <title>FreeMaker模板引擎</title>
        </head>
        <body>
            <h1>FreeMarker模板引擎<h1>
            <h1>center page</h1>
        </body>
        </html>

2.SpringBoot整合thymeleaf
    <1>再pom.xml文件中引入依赖
        <!-- 引入 freemarker 模板依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
    <2>再application.properties文件中配置
        ############################################################
        #
        # thymeleaf 静态资源配置
        #
        ############################################################
        spring.thymeleaf.prefix=classpath:/templates/
        spring.thymeleaf.suffix=.html
        spring.thymeleaf.mode=HTML5
        spring.thymeleaf.encoding=UTF-8
        spring.thymeleaf.content-type=text/html
        # 关闭缓存,及时刷新.上线生产环境需要改为true
    <3>编写Controller 来测试
    
    
    <4>thymelead 常用标签的使用方法
        ①基本的使用方式
        ②对象的引用方式
            <div th:object="${user}">
        ?时间类型转换
            用户生日:<input th:value="*{#dates.format(birthday, 'yyyy-MM-dd E hh:mm:ss')}"/>
        ④text 与 utext
            <span th:text="${user.desc}">abc</span>
            <br/>
            <span th:utext="${user.desc}">abc</span>
            <br/>
            结果:
                text 与 utext :
                    <font color='green'><b>hello hooc</b></font> 
                    hello hooc 
        URL
            <a th:href="@{https://github.com/}">网站地址</a>
        ⑥引入静态资源文件
            <script th:src="@{/static/js/test.js}"></script>
        ⑦条件判断 th:if
            <div th:if="${user.age} == 18">十八岁的天空</div>
        ⑧th:unless 与 th:if
            <div th:if="${user.age} le 18">小于等于</div>
            <div th:unless="${user.age} == 21">年龄不是18岁</div>
        ⑨循环:th:each
            <tr th:each="person:${userList}">
                <td th:text="${person.name}"></td>
            </tr>
        ?th:switch 与 th:case
            <div th:switch="${user.name}">
                <p th:case="'lee'">lee</p>
                <!-- 资源文件的引用需要再application,properties中配置 -->
                <p th:case="#{roles.superadmin}">超级管理员</p>
            </div>
            
            th:case="#{roles.superadmin}"    引用资源配置文件方式:
                <1>在配置文件中->application.properties中引入文件路径的配置
                    ############################################################
                    #
                    # 配置i18n 资源文件,供thymeleaf 读取
                    #
                    ############################################################
                    spring.messages.basename=i18n/message
                    #缓存时间
                    spring.messages.cache-seconds=3600          
                    #编码方式
                    spring.messages.encoding=UTF-8
        
                <2>编写用户自定义文件
                    #用户自定义权限

                    #普通管理员
                    roles.manager = manager
                    roles.superadmin = lhg
                
                <3>方可在文件中使用 

2.SpringBoot配置全局的异常捕获
    <1>页面跳转地址
          
    <2>ajax形式
    <3>统一返回异常的形式
    

3.SpringBoot整合MyBatis
    <1>使用generatorConfig生成mapper以及pojo
    <2>实现基于mybatis的CRUD功能
    <3>整合mybatis-pagehelper实现分页
    <4>自定义mapper
    
    1.MyBatis Generator (MBG配置)
        <1>配置文件头
            <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE generatorConfiguration
                  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
                  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    2.根节点
        <generatorConfiguration>
            <!-- 具体配置内容 -->
        </generatorConfiguration>  
    3.<generatorConfiguration>的子元素
        从这段开始,就是配置的主要内容,这些配置都是generatorConfiguration元素的子元素(有严格顺序)
        1.<properties> (0个或1个)
        2.<classPathEntry> (0个或多个)
        3.<context> (1个或多个)
      3.1 <properties> 元素
        这个元素用来指定外部的属性元素,不是必须的元素。
        元素用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用 ${property}这种形式的引用,通过这种方式引用属性文件中的属性值。
        对于后面需要配置的jdbc信息和targetProject属性会很有用
        这个属性可以通过resource或者url来指定属性文件的位置,这两个属性只能使用其中一个来指定,同时出现会报错
        resource:指定classpath下的属性文件,使用类似com/myproject/generatorConfig.properties这样的属性值。
        url:可以指定文件系统上的特定位置,例如file:///C:/myfolder/generatorConfig.properties
      
      3.2 <classPathEntry> 元素
        这个元素可以0或多个,不受限制。
        最常见的用法是通过这个属性指定驱动的路径,例如:
        <classPathEntry location="E:\mysql\mysql-connector-java-5.1.29.jar"/>
        注意,classPathEntry只在下面这两种情况下才有效

        当加载 JDBC 驱动内省数据库时
        当加载根类中的 JavaModelGenerator 检查重写的方法时
        因此,如果你需要加载其他用途的jar包,classPathEntry起不到作用,不能这么写,解决的办法就是将你用的jar包添加到类路径中,在IDE中运行的时候,添加jar包比较容易。
        当从命令行执行的时候,需要用java -cp xx.jar,xx2.jar xxxMainClass这种方式在-cp后面指定来使用(注意-jar会导致-cp无效)。
        
      3.3 <context> 元素
        在MBG的配置中,至少需要有一个<context>元素。
        <context>元素用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行MBG的时候还可以指定要运行的<context>
        该元素只有一个必选属性id,用来唯一确定一个<context>元素,该id属性可以在运行MBG时使用
        
        defaultModelType
            这个属性很重要,这个属性定义了MBG如何生成实体类
            这个属性有以下可选值:

            conditional:这是默认值,这个模型和下面的hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类。
            因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
            flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。这种模型最简单,推荐使用。
            hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系

            
        targetRuntime:此属性用于指定生成的代码的运行时环境。该属性支持以下可选值:
            MyBatis3:这是默认值
            MyBatis3Simple
            Ibatis2Java2
            Ibatis2Java5 一般情况下使用默认值即可,有关这些值的具体作用以及区别请查看中文文档的详细内容。
        
        introspectedColumnImpl:该参数可以指定扩展org.mybatis.generator.api.IntrospectedColumn该类的实现类
            该属性的作用可以查看扩展MyBatis Generator。
            
        <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        使用MyBatis3Simple可以避免在后面的<table>中逐个进行配置(后面会提到)
        MBG配置中的其他几个元素,基本上都是<context>的子元素,这些子元素(有严格的配置顺序)包括:

            <property> (0个或多个)
            <plugin> (0个或多个)
            <commentGenerator> (0个或1个)
            <jdbcConnection> (1个)
            <javaTypeResolver> (0个或1个)
            <javaModelGenerator> (1个)
            <sqlMapGenerator> (0个或1个)
            <javaClientGenerator> (0个或1个)
            <table> (1个或多个)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值