[Java] 用Spring Boot简化开发1

博客首页 » Java 用Spring Boot简化开发1

发布于 27 Jan 2016 09:42
标签 blog
Spring Boot已经成熟,可以简化maven依赖的编写,快速开发。

Spring Boot的好处是:

  • 可以独立运行的 Spring 应用。
  • 嵌入 Tomcat 或 Jetty 服务器,不需部署WAR。
  • 提供基础 POM 文件简化 Maven 配置。
  • 尽可能地根据项目依赖来自动配置 Spring 框架。
  • 提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
  • 没有代码生成,也没有 XML 配置文件。

Spring Boot中提供的组件是:

  • spring-boot-starter 核心 POM,包含自动配置支持、日志库和对 YAML 配置文件的支持。
  • spring-boot-starter-amqp 通过 spring-rabbit 支持 AMQP。
  • spring-boot-starter-aop 包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
  • spring-boot-starter-batch 支持 Spring Batch,包含 HSQLDB。
  • spring-boot-starter-data-jpa 包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
  • spring-boot-starter-data-mongodb 包含 spring-data-mongodb 来支持 MongoDB。
  • spring-boot-starter-data-rest 通过 spring-data-rest-webmvc 支持以 REST 方式暴露 Spring Data 仓库。
  • spring-boot-starter-jdbc 支持使用 JDBC 访问数据库。
  • spring-boot-starter-security 包含 spring-security。
  • spring-boot-starter-test 包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
  • spring-boot-starter-velocity 支持使用 Velocity 作为模板引擎。
  • spring-boot-starter-web 支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
  • spring-boot-starter-websocket 支持使用 Tomcat 开发 WebSocket 应用。
  • spring-boot-starter-ws 支持 Spring Web Services。
  • spring-boot-starter-actuator 添加适用于生产环境的功能,如性能指标和监测等功能。
  • spring-boot-starter-remote-shell 添加远程 SSH 支持。
  • spring-boot-starter-jetty 使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
  • spring-boot-starter-log4j 添加 Log4j 的支持。
  • spring-boot-starter-logging 使用 Spring Boot 默认的日志框架 Logback。
  • spring-boot-starter-tomcat 使用 Spring Boot 默认的 Tomcat 作为应用服务器。

建立空Maven项目

<?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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>spring-boot-simple</artifactId>
    <version>1.0-SNAPSHOT</version>
 
--留空
 
</project>

添加spring-boot-starter-web依赖

    <properties>
        <spring.boot.version>1.3.2.RELEASE</spring.boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
    </dependencies>

添加repackage构建插件spring-boot-maven-plugin

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

添加代码

package examples;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@EnableAutoConfiguration
public class Application {
 
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
 
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}

关键是以下Annotation

  • @EnableAutoConfiguration - 启用自动配置
  • @RestController - Spring MVC 控制器
  • @RequestMapping("/") - Spring MVC URL映射

启动

执行命令
mvn spring-boot:run
后可以看到启动提示

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.3.2.RELEASE)

验证

执行简单的程序从localhost:8080取得结果

pip install pycurl;
 
python -c "
from pycurl import Curl;
from cStringIO import StringIO; 
buf=StringIO(); 
c=Curl(); 
c.setopt(c.URL, 'http://localhost:8080/'); 
c.setopt(c.WRITEFUNCTION, buf.write); 
c.perform(); 
print buf.getvalue(); 
buf.close();
"

Hello World!

参考资料

使用 Spring Boot 快速构建 Spring 框架应用
http://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/


本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用,仅有一个特殊要求,请用链接方式注明文章引用出处及作者。请协助维护作者合法权益。


系列文章

文章列表

  • Java 用Spring Boot简化开发1

这篇文章对你有帮助吗,投个票吧?

rating: 0+x

留下你的评论

Add a New Comment