网络科技

    今日:768| 主题:244859
收藏本版
互联网、科技极客的综合动态。

[其他] 小试 Spring Boot - Spring MVC

[复制链接]
西瓜荡秋千 发表于 2016-10-6 20:20:12
66 1

立即注册CoLaBug.com会员,免费获得投稿人的专业资料,享用更多功能,玩转个人品牌!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前阵想试下 Spring MVC 4 有了些什么新特性, 可真正用 Maven 在 IDE 中建立一个项目并不那么容易. Spring 当初在笑 EJB 的笨重时如今把自己也搞大了, 继而出台了一个    Spring Boot来响应微服务的号召.  
  Spring Boot 的出世可以大大提升使用 Spring 框架时的开发效率. Spring 尽量简化 Spring 项目的配置, 一个    mvn package就轻轻松的把一个 Web 项目打成一个      fat jar, 运行 `java -jar spring-boot-sample-1.0-SNAPSHOT.jar` 就能通过内嵌的 Tomcat 或 Jetty 来启动一个 Web 应用了, 更别提怎么应对普通控制台应用了.  
  现在就来体验一下 Spring Boot 做一个 Spring MVC 项目有多简单, 我们仍然是建立一个 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.     <modelVersion>4.0.0</modelVersion>

  6.     <groupId>cc.unmi</groupId>
  7.     <artifactId>spring-boot-sample</artifactId>
  8.     <version>1.0-SNAPSHOT</version>

  9.     <parent>
  10.         <groupId>org.springframework.boot</groupId>
  11.         <artifactId>spring-boot-starter-parent</artifactId>
  12.         <version>1.4.1.RELEASE</version>
  13.     </parent>
  14.     <dependencies>
  15.         <dependency>
  16.             <groupId>org.springframework.boot</groupId>
  17.             <artifactId>spring-boot-starter-web</artifactId>
  18.         </dependency>
  19.     </dependencies>
  20. </project>
复制代码
上面的    pom.xml配置通过 parent    spring-boot-starter-parent项目和对    spring-boot-starter-web的依赖把相关的依赖都引入到本项目中来了.  
  然后是一个基本实现,    SampleController类  
  1. package hello;

  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  4. import org.springframework.stereotype.Controller;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.ResponseBody;

  7. @Controller
  8. @EnableAutoConfiguration
  9. public class SampleController {

  10.     @RequestMapping("/")
  11.     @ResponseBody
  12.     String home() {
  13.         return "Hello World!";
  14.     }

  15.     public static void main(String[] args) throws Exception {
  16.         SpringApplication.run(SampleController.class, args);
  17.     }
  18. }
复制代码
上面是一个 main 函数, 可以立马在 IDE 中直接运行这个主类, 能够看到控制台输出
  1. .   ____          _            __ _ _
  2. /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  3. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  4. \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  5.   '  |____| .__|_| |_|_| |_\__, | / / / /
  6. =========|_|==============|___/=/_/_/_/
  7. :: Spring Boot ::        (v1.4.1.RELEASE)
  8. ...........................
  9. 2016-10-05 23:21:05.260 INFO 88095 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
  10. 2016-10-05 23:21:05.271 INFO 88095 --- [ main] hello.SampleController : Started SampleController in 7.402 seconds (JVM running for 8.102)
复制代码
访问    http://localhost:8080/, 得到预计的输出  
  1. ➜ / curl -i http://localhost:8080/
  2. HTTP/1.1 200
  3. X-Application-Context: application
  4. Content-Type: text/plain;charset=UTF-8
  5. Content-Length: 12
  6. Date: Thu, 06 Oct 2016 04:28:14 GMT

  7. Hello World!
复制代码
其他几种方式运行
  
       
  • 前面提到过, 用      mvn package 生成一个 jar 包, 然后用      java -jar spring-boot-sample-1.0-SNAPSHOT.jar 一样能启动内嵌的 Tomcat   
  • 使用      spring-boot-maven-plugin 插件, 这是开发中最常见的方法, 可以说是 Spring Boot 的标配. 需要在      pom.xml 中添加     
    1. <build>
    2.     <plugins>
    3.         <plugin>
    4.             <groupId>org.springframework.boot</groupId>
    5.             <artifactId>spring-boot-maven-plugin</artifactId>
    6.         </plugin>
    7.     </plugins>
    8. </build>
    复制代码
           之后便可以用          mvn spring-boot:run来启动内嵌 Tomcat; 如果需要 Debug 方式启动 Tomcat,         
                      mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"        
       
  • 如果就是想要和从前一样生成一个 WAR 包部署到 Tomcat 里去行吗? 当然没问题, 只要在      pom.xml 中加上项目属性      <packaging>war</packaging>, 这时候再来      mvn package 生成的就是一个 WAR 包了.  
  上面我们是用    SpringApplication.run(SampleController.class, args)启动了一个 Controller, 如果是要启动多个 Controller 该如何呢? 写上多个就行啦, 在这里  
  1. public static void mains(String[] args) throws Exception {
  2.      SpringApplication.run(new Object[]{SampleController.class, AnotherController.class}, args);
  3. }
复制代码
其他一些便利:
  
       
  • 引入依赖 org.springframework.boot:spring-boot-starter-actuator 可以获得开箱即得的运维支持, 如      /beans 看到所有的 bean,      /info 基本信息, 甚至      /shutdown 关闭应用. 可以启动控制台看到相关的路径映射.   
  • 约定的强大的外部化属性支持, 如从命令行参数, 系统属性; 约定位置外的       application.properties 或      application.yaml 文件中读取属性, 注入时只需      @Value("${name}")   
  •               对          /static,          /public,          /resources 或          /META-INF/resources 目录只默认为静态文件   
  • 还出了 Spring Boot CLI, 在 Mac 下用        bew tap pivotal/tap; brew install springboot 安装, 命令为      spring  
  链接:
  
       
  •       使用 Spring Boot 快速构建 Spring 框架应用  
友荐云推荐




上一篇:小白学react之由FOUC引发的一次webpack变革
下一篇:This Amazon Fire HD 8 punches above its price
酷辣虫提示酷辣虫禁止发表任何与中华人民共和国法律有抵触的内容!所有内容由用户发布,并不代表酷辣虫的观点,酷辣虫无法对用户发布内容真实性提供任何的保证,请自行验证并承担风险与后果。如您有版权、违规等问题,请通过"联系我们"或"违规举报"告知我们处理。

lrnwzo352 发表于 2016-10-8 16:14:29
是爷们的娘们的都帮顶!大力支持
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我要投稿

推荐阅读

扫码访问 @iTTTTT瑞翔 的微博
回页顶回复上一篇下一篇回列表手机版
手机版/CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 )|网站地图 酷辣虫

© 2001-2016 Comsenz Inc. Design: Dean. DiscuzFans.

返回顶部 返回列表