小试 Spring Boot - Spring MVC

前阵想试下 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 文件内容如下:

上面的 pom.xml 配置通过 parent spring-boot-starter-parent 项目和对 spring-boot-starter-web 的依赖把相关的依赖都引入到本项目中来了.

然后是一个基本实现,  SampleController 类

这里的注解 @SpringBootApplication 替换成 @EnableAutoConfiguration 也行, 但是前者更强大, 因为它是后者加上 @Configuration 和 @ComponentScan 的组合.

上面是一个 main 函数, 可以立马在 IDE 中直接运行这个主类, 能够看到控制台输出

访问 http://localhost:8080/, 得到预计的输出

其他几种方式运行

  1. 前面提到过, 用 mvn package 生成一个 jar 包, 然后用 java -jar spring-boot-sample-1.0-SNAPSHOT.jar 一样能启动内嵌的 Tomcat
  2. 使用 spring-boot-maven-plugin 插件, 这是开发中最常见的方法, 可以说是 Spring Boot 的标配. 需要在 pom.xml 中添加

    之后便可以用 mvn spring-boot:run 来启动内嵌 Tomcat; 如果需要 Debug 方式启动 Tomcat, 
      mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

  3. 如果就是想要和从前一样生成一个 WAR 包部署到 Tomcat 里去行吗? 当然没问题, 只要在 pom.xml 中加上项目属性 <packaging>war</packaging>, 这时候再来 mvn package 生成的就是一个 WAR 包了.

上面我们是用 SpringApplication.run(SampleController.class, args) 启动了一个 Controller, 如果是要启动多个 Controller 该如何呢? 写上多个就行啦, 在这里

其他一些便利:

  1. 引入依赖 org.springframework.boot:spring-boot-starter-actuator 可以获得开箱即得的运维支持, 如 /beans 看到所有的 bean, /info 基本信息, 甚至 /shutdown 关闭应用. 可以启动控制台看到相关的路径映射.
  2. 约定的强大的外部化属性支持, 如从命令行参数, 系统属性; 约定位置外的 application.properties 或 application.yaml 文件中读取属性, 注入时只需 @Value("${name}")
  3. /static, /public, /resources 或 /META-INF/resources 目录只默认为静态文件
  4. 还出了 Spring Boot CLI, 在 Mac 下用  bew tap pivotal/tap; brew install springboot 安装, 命令为 spring

链接:

  1. 使用 Spring Boot 快速构建 Spring 框架应用

 

本文链接 https://yanbin.blog/try-spring-boot-spring-mvc/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

1 Comment
Inline Feedbacks
View all comments
trackback

[…] 现在就来体验一下 Spring Boot 做一个 Spring MVC 项目有多简单, 我们仍然是建立一个 Maven 项目, 最简单的 pom.xml 文件内容如下: 阅读全文 >> […]