`
qindongliang1922
  • 浏览: 2183900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117534
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125921
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59907
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71301
社区版块
存档分类
最新评论

Spring Boot开发之弄月吟风 (三)

阅读更多

今天来看下,如何在Spring Boot中使用热加载和集成Velocity,废话不多说,直接看下面的maven的pom依赖:


<?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
http://www.w3.org/2001/XMLSchema-instance " >
    <modelVersion>4.0.0</modelVersion>
    <groupId>serachrate</groupId>
    <artifactId>serachrate</artifactId>
    <version>1.0-SNAPSHOT</version>


    <!--父依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.2.RELEASE</version>
    </parent>


    <!--指定编码-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <!--
                比较常用的打包命令
                mvn clean package spring-boot:repackage
                只有使用下面的maven命令在cmd窗口启动,
                热加载才能生效,如果直接Run运行的Application是
                不支持热加载的
                mvn clean spring-boot:run
                -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.2.2.RELEASE</version>
                <dependencies>
                    <!--引入springloaded来实现动态加载-->
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.0.RELEASE</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <!--  <mainClass>com.dhgate.rate.ApplicationSearch</mainClass> -->
                    <!--指定监听的端口号-->
                    <jvmArguments>
                        -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777
                    </jvmArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <dependencies>
        <!--web容器支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--本例中散仙排除了tomcat,而使用jetty作为容器-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>

        </dependency>


        <!-- 安全验证
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
       -->
        <!--Velocity引擎的支持,如果你需要其他的模板引擎,则-->
        <!--可以直接引入其他的即可-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-velocity</artifactId>
        </dependency>

        <!--性能指标和监测-->
        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-actuator</artifactId>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-remote-shell</artifactId>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-security</artifactId>-->
        <!--</dependency>-->


        <!--Guava包的依赖支持-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>16.0.1</version>
        </dependency>

        <!--Gson支持-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
        </dependency>

        <!--Jsoup支持-->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.8.1</version>
        </dependency>
        <!--solrj的依赖包 -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>4.3.1</version>
        </dependency>

    </dependencies>


</project>




上面已经引入了Spring Loaded框架以及Velocity模板引擎,所以项目就会支持这两种技术,需要注意的是在pom里面关于Sprig Loaded的配置,否则将不会生效,另外建议把IDEA的自动编译保存功能打开,这样一来,Velocity的模板也会自动刷新。

在Spring Boot中不管集成任何东西,都是这么简单的事情,只需稍微变更pom依赖,即可完成,非常便利。


关于Velocity的标签的使用,散仙抽空会在补充一下用法,整体感觉,比Struts和el表达式标签或者jsp里面的标签,简单得多,而且支持宏定义,用起来非常给力。

在Spring Boot中,我们只需要在resource文件夹下,新建一个tmplates的文件夹来存放vm模板即可,然后我们就可以在后台的控制器里面,控制返回到那个vm了,而且数据也是从后台传过来的。

一个简单的例子:

    @RequestMapping("/hello")
    public String hello(Map<String, Object> model){
        List<String> l= Lists.newArrayList();
        l.add("哈喽,hadoop");
        l.add("哈喽,hbase");
        l.add("哈喽,hive");
        l.add("哈喽,pig");
        l.add("哈喽,zookeeper");
        l.add("哈喽,三劫散仙");
        //将数据存放map里面,可以直接在velocity页面,使用key访问
        model.put("data",l);

        return "hello";
    }



模板部分:




velocity代码:



#foreach($s in $data)

    <h1 style="color: crimson">访问数据:$s</h1>

#end


结果如下:




关于动态加载和编译的部分,大家可以自行在自己的环境中测试。

关于spring boot打包和maven启动的两个命令如下:


             //打包编译该spring boot项目
                mvn clean package spring-boot:repackage
             //以maven方式启动该项目,spring loaded必须使用此启动方法,才能生效
                mvn clean spring-boot:run



欢迎大家扫码关注微信公众号:我是攻城师,我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!











  • 大小: 14.3 KB
  • 大小: 64 KB
2
0
分享到:
评论
2 楼 junworld 2016-09-30  
我的为什么没有成功,没有去解析velocity页面,而是直接在页面显示hello
1 楼 lvan_dan 2016-02-23  
写的很不错的,咋没有下文了?直到(三),没有其他的了?

相关推荐

    吟风一键生成还原短网址V1.0免费绿色版

    吟风一键生成还原短网址是一款功能强大的吟风网址生成工具。经过处理过后的网址更加的短小精悍,让用户一眼即可记住,吟风一键生成还原短网址。有需要的用户欢迎来脚本之家下载。 吟风一键生成还原短网址功能:  ...

    用友NC报表全套开发教程

    用友NC(U8)是一款大型的企业资源计划(ERP)软件,其报表模块是核心功能之一,为企业提供数据统计、分析及决策支持。本教程全面讲解了如何在用友NC环境中设计、开发和维护报表。 【描述】"用友 NC报表全套开发...

    Couplets:基于深度学习(attention机制)的对对联系统

    对联 基于中的变压器实现自动对对联。贯通的放置有:更改了DecoderLayer中第二层注意的查询...柳岸抚琴,弄曲似弄月吟风 只有刚强的人,才有神圣的意志,凡是战斗的人,才能取得胜利 - 若无敬畏之事,业无天地之精神,

    用友Nc开发的基础入门

    ### 用友NC开发基础入门知识点详解 #### 一、代码基础知识 在用友NC开发过程中,代码基础知识是非常重要的组成部分,下面将详细介绍涉及到的主要类及其功能。 ##### 1. UI (用户界面) - **`nc.ui.pub.ToftPanel`...

    Qt与OpenGL实现的立体俄罗斯方块游戏

    【Qt与OpenGL实现的立体俄罗斯方块游戏】是一款利用Qt框架和OpenGL图形库开发的创新版经典游戏。在这款游戏中,玩家将体验到更加立体、视觉效果丰富的俄罗斯方块玩法。下面将详细介绍其中涉及的关键技术和知识点。 ...

    用友NC客开人员培训专用教程最全教程

    - 介绍如何设置NCHome路径,这是开发环境的基础配置之一。 - 讲解如何正确设置数据源,以便开发过程中能够顺利连接数据库。 - 探讨模块选择的重要性及其对开发效率的影响。 - **2.2.4 Eclipse中Error/Warnings...

    Linux下Eclipse调试C语言简介及环境配置

    #### 三、安装Eclipse 1. **打开终端**:在Linux系统中,可以通过快捷键`Ctrl + Alt + T`打开终端。 2. **安装Eclipse**:在终端中输入以下命令安装Eclipse: ``` sudo apt-get install eclipse ``` 输入密码后...

    Rad Studio Xe4破解及常用控件全套之三,已亲测

    之前在用delphi xe2 结果直到某一天,重做系统后,发现xe2各种纠结,费时3天,完成delphi Xe4开发环境的安装, 所有控件均亲自安装和测试正常,现分享给大家,希望能帮上大家,免去寻找资源和安装测式。 注:本人...

    江西省崇仁一中2020学年度八年级语文下学期期中考试卷 人教新课标版.doc

    8. “古诗苑漫步”活动的试题部分,包括成语在古诗中的识别(如“悲欢离合”、“青梅竹马”),吟风咏月诗句的引用,以及歌曲歌词对应的唐诗(《烟花三月》对应李白的《黄鹤楼送孟浩然之广陵》,《涛声依旧》对应...

    2019第28届计算机表演赛命题搜索答案(词语方面).doc

    11. 《三十六计》是明清时期的兵书,其中"借尸还魂"这一计策讲述了田子春如何利用策略获取兵权的故事。 12. "马蹄铁上留名"的故事出自《吟风阁杂剧·马蹄铁上留名授计逃关》,是古代戏曲中的一个情节。 13. ...

    2022年届计算机表演赛命题搜索成语篇答案666.docx

    14. 故事“智取生辰纲”出自元代贾仲明的《吟风阁杂剧》,描述智勇之人用计夺取财物。 15. “瞠目结舌”这个成语形容惊讶或恐惧得说不出话来,出自《太平广记》这部记载奇闻异事的古代笔记小说集。 以上是针对2022...

    mcDBRadio明晨豆瓣电台3.1桌面客户端软件

    mcDBRadio明晨豆瓣电台3.1桌面客户端软件 软件名称:DBRadio 明晨豆瓣电台桌面版客户端 软件版本:3.1 ...软件编写:楚吟风@明晨网络 官方地址:http://www.mingchennet.com/product/doubanradio.html

    Ubuntu安装以及常用软件配置

    #### 5.1 Python开发环境 安装Python 3和pip: ``` sudo apt install python3 python3-pip ``` 安装虚拟环境管理器: ``` sudo apt install python3-venv ``` #### 5.2 Java开发环境 安装Java JDK: ``` sudo apt ...

    WTL开发者指南+深入剖析WTL

    - 轻量级:相比于MFC(Microsoft Foundation Classes),WTL占用的资源更少,启动更快,更适合开发小型或中型的桌面应用。 - 直接的API访问:WTL允许开发者直接操作Windows API,提供了对底层操作的控制,便于进行...

    java数据库打击来看那看

    【描述】:在IT行业中,数据库是存储和管理数据的核心工具,而Java作为广泛应用的编程语言,与数据库的交互是开发中不可或缺的一部分。本文将深入探讨Java如何连接和操作数据库,以及在实际应用中的最佳实践。 ...

    山东省邹城市第一中学2018届高三地理上学期期中试题含解析

    选项A描述的是春季的景象,B项是夏季景象,C项描述的是秋季景象,而D项的"千杯浊酒吟风月,梅影疏香入栅栏"更符合冬季寒冷、寂静的氛围。 7. 林木冻裂的气象条件:林木冻裂主要发生在冬季,尤其是昼夜温差极大的...

    Rad Studio Xe4破解及常用控件全套之六,已亲测

    之前在用delphi xe2 结果直到某一天,重做系统后,发现xe2各种纠结,费时3天,完成delphi Xe4开发环境的安装, 所有控件均亲自安装和测试正常,现分享给大家,希望能帮上大家,免去寻找资源和安装测式。 注:本人...

    Rad Studio Xe4破解及常用控件全套之一,已亲测

    之前在用delphi xe2 结果直到某一天,重做系统后,发现xe2各种纠结,费时3天,完成delphi Xe4开发环境的安装, 所有控件均亲自安装和测试正常,现分享给大家,希望能帮上大家,免去寻找资源和安装测式。 注:本人...

    Rad Studio Xe4破解及常用控件全套之七,已亲测

    之前在用delphi xe2 结果直到某一天,重做系统后,发现xe2各种纠结,费时3天,完成delphi Xe4开发环境的安装, 所有控件均亲自安装和测试正常,现分享给大家,希望能帮上大家,免去寻找资源和安装测式。 注:本人...

    Rad Studio Xe4破解及常用控件全套之四,已亲测

    之前在用delphi xe2 结果直到某一天,重做系统后,发现xe2各种纠结,费时3天,完成delphi Xe4开发环境的安装, 所有控件均亲自安装和测试正常,现分享给大家,希望能帮上大家,免去寻找资源和安装测式。 注:本人...

Global site tag (gtag.js) - Google Analytics