码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot开发

时间:2015-04-28 09:57:48      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

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


Xml代码   技术分享
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"  
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd  
  5. http://www.w3.org/2001/XMLSchema-instance " >  
  6.     <modelVersion>4.0.0</modelVersion>  
  7.     <groupId>serachrate</groupId>  
  8.     <artifactId>serachrate</artifactId>  
  9.     <version>1.0-SNAPSHOT</version>  
  10.   
  11.   
  12.     <!--父依赖-->  
  13.     <parent>  
  14.         <groupId>org.springframework.boot</groupId>  
  15.         <artifactId>spring-boot-starter-parent</artifactId>  
  16.         <version>1.2.2.RELEASE</version>  
  17.     </parent>  
  18.   
  19.   
  20.     <!--指定编码-->  
  21.     <properties>  
  22.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  23.     </properties>  
  24.   
  25.     <build>  
  26.         <pluginManagement>  
  27.             <plugins>  
  28.                 <plugin>  
  29.                     <groupId>org.springframework.boot</groupId>  
  30.                     <artifactId>spring-boot-maven-plugin</artifactId>  
  31.                 </plugin>  
  32.             </plugins>  
  33.         </pluginManagement>  
  34.   
  35.         <plugins>  
  36.             <plugin>  
  37.                 <!--  
  38.                 比较常用的打包命令  
  39.                 mvn clean package spring-boot:repackage  
  40.                 只有使用下面的maven命令在cmd窗口启动,  
  41.                 热加载才能生效,如果直接Run运行的Application是  
  42.                 不支持热加载的  
  43.                 mvn clean spring-boot:run  
  44.                 -->  
  45.                 <groupId>org.springframework.boot</groupId>  
  46.                 <artifactId>spring-boot-maven-plugin</artifactId>  
  47.                 <version>1.2.2.RELEASE</version>  
  48.                 <dependencies>  
  49.                     <!--引入springloaded来实现动态加载-->  
  50.                     <dependency>  
  51.                         <groupId>org.springframework</groupId>  
  52.                         <artifactId>springloaded</artifactId>  
  53.                         <version>1.2.0.RELEASE</version>  
  54.                     </dependency>  
  55.                 </dependencies>  
  56.                 <executions>  
  57.                     <execution>  
  58.                         <goals>  
  59.                             <goal>repackage</goal>  
  60.                         </goals>  
  61.                         <configuration>  
  62.                             <classifier>exec</classifier>  
  63.                         </configuration>  
  64.                     </execution>  
  65.                 </executions>  
  66.                 <configuration>  
  67.                     <!--  <mainClass>com.dhgate.rate.ApplicationSearch</mainClass> -->  
  68.                     <!--指定监听的端口号-->  
  69.                     <jvmArguments>  
  70.                         -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777  
  71.                     </jvmArguments>  
  72.                 </configuration>  
  73.             </plugin>  
  74.         </plugins>  
  75.     </build>  
  76.   
  77.   
  78.     <dependencies>  
  79.         <!--web容器支持-->  
  80.         <dependency>  
  81.             <groupId>org.springframework.boot</groupId>  
  82.             <artifactId>spring-boot-starter-web</artifactId>  
  83.             <!--本例中散仙排除了tomcat,而使用jetty作为容器-->  
  84.             <exclusions>  
  85.                 <exclusion>  
  86.                     <groupId>org.springframework.boot</groupId>  
  87.                     <artifactId>spring-boot-starter-tomcat</artifactId>  
  88.                 </exclusion>  
  89.             </exclusions>  
  90.         </dependency>  
  91.         <dependency>  
  92.             <groupId>org.springframework.boot</groupId>  
  93.             <artifactId>spring-boot-starter-jetty</artifactId>  
  94.   
  95.         </dependency>  
  96.   
  97.   
  98.         <!-- 安全验证  
  99.         <dependency>  
  100.             <groupId>org.springframework.boot</groupId>  
  101.             <artifactId>spring-boot-starter-security</artifactId>  
  102.         </dependency>  
  103.        -->  
  104.         <!--Velocity引擎的支持,如果你需要其他的模板引擎,则-->  
  105.         <!--可以直接引入其他的即可-->  
  106.         <dependency>  
  107.             <groupId>org.springframework.boot</groupId>  
  108.             <artifactId>spring-boot-starter-velocity</artifactId>  
  109.         </dependency>  
  110.   
  111.         <!--性能指标和监测-->  
  112.         <!--<dependency>-->  
  113.         <!--<groupId>org.springframework.boot</groupId>-->  
  114.         <!--<artifactId>spring-boot-starter-actuator</artifactId>-->  
  115.         <!--</dependency>-->  
  116.         <!--<dependency>-->  
  117.         <!--<groupId>org.springframework.boot</groupId>-->  
  118.         <!--<artifactId>spring-boot-starter-remote-shell</artifactId>-->  
  119.         <!--</dependency>-->  
  120.         <!--<dependency>-->  
  121.         <!--<groupId>org.springframework.boot</groupId>-->  
  122.         <!--<artifactId>spring-boot-starter-security</artifactId>-->  
  123.         <!--</dependency>-->  
  124.   
  125.   
  126.         <!--Guava包的依赖支持-->  
  127.         <dependency>  
  128.             <groupId>com.google.guava</groupId>  
  129.             <artifactId>guava</artifactId>  
  130.             <version>16.0.1</version>  
  131.         </dependency>  
  132.   
  133.         <!--Gson支持-->  
  134.         <dependency>  
  135.             <groupId>com.google.code.gson</groupId>  
  136.             <artifactId>gson</artifactId>  
  137.             <version>2.3.1</version>  
  138.         </dependency>  
  139.   
  140.         <!--Jsoup支持-->  
  141.         <dependency>  
  142.             <groupId>org.jsoup</groupId>  
  143.             <artifactId>jsoup</artifactId>  
  144.             <version>1.8.1</version>  
  145.         </dependency>  
  146.         <!--solrj的依赖包 -->  
  147.         <dependency>  
  148.             <groupId>org.apache.solr</groupId>  
  149.             <artifactId>solr-solrj</artifactId>  
  150.             <version>4.3.1</version>  
  151.         </dependency>  
  152.   
  153.     </dependencies>  
  154.   
  155.   
  156. </project>  




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

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


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

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

一个简单的例子: 

Java代码   技术分享
  1. @RequestMapping("/hello")  
  2. public String hello(Map<String, Object> model){  
  3.     List<String> l= Lists.newArrayList();  
  4.     l.add("哈喽,hadoop");  
  5.     l.add("哈喽,hbase");  
  6.     l.add("哈喽,hive");  
  7.     l.add("哈喽,pig");  
  8.     l.add("哈喽,zookeeper");  
  9.     l.add("哈喽,三劫散仙");  
  10.     //将数据存放map里面,可以直接在velocity页面,使用key访问  
  11.     model.put("data",l);  
  12.   
  13.     return "hello";  
  14. }  



模板部分: 

技术分享  


velocity代码: 
Java代码   技术分享
  1. #foreach($s in $data)  
  2.   
  3.     <h1 style="color: crimson">访问数据:$s</h1>  
  4.   
  5. #end  


结果如下: 

技术分享


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

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


Java代码   技术分享
  1. //打包编译该spring boot项目  
  2.    mvn clean package spring-boot:repackage  
  3. //以maven方式启动该项目,spring loaded必须使用此启动方法,才能生效  
  4.    mvn clean spring-boot:run  

Spring Boot开发

标签:

原文地址:http://my.oschina.net/u/2273085/blog/407062

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!